gpt4 book ai didi

objective-c - 符合 NSObject 的类中 -self 方法的目的是什么?

转载 作者:太空狗 更新时间:2023-10-30 03:24:05 26 4
gpt4 key购买 nike

就是这样。为什么会有人想要(至少作为公共(public) API)这样的方法?它有什么实际用途吗?

最佳答案

self 方法对于键值编码 (KVC) 很有用。

使用 KVC,您可以像对待字典一样对待对象。您可以使用包含属性名称的字符串访问对象的属性,如下所示:[view valueForKey:@"superview"]。您使用包含关键路径的字符串遍历属性链,如下所示:[view valueForKeyPath:@"superview.superview.center"]

由于 NSObject 有一个 self 方法,您可以使用 self 作为键或键路径:[view valueForKey:@ “ self ”]。因此,如果您以编程方式构建 key 路径,或从文件中读取它们,使用 "self" 作为 key 可以避免编写特殊情况。

你也可以在谓词中使用self,像这样:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self beginswith \"foo\""];
NSArray *filteredArray = [arrayOfStrings filteredArrayWithPredicate:predicate];

我不知道在这种情况下 NSPredicate 是否实际使用了 self 方法(可能通过 KVC)。这当然是可能的。

关于objective-c - 符合 NSObject 的类中 -self 方法的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com