gpt4 book ai didi

iphone - 如何使用键值编码判断对象是否存在键?

转载 作者:IT老高 更新时间:2023-10-28 11:48:08 27 4
gpt4 key购买 nike

我想测试一个对象在 iPhone SDK 中是否具有可写的@property。

一种可能的方法是检查 -valueForKey: 方法,但这似乎相当不雅!

例子:

  @try {
id *value = [instance valueForKey:@"myProperty"];
}
@catch (NSException * e) {
// Key did not exist
}

有更好的方法吗?

最佳答案

如果您正在创建被检查的对象,您可以覆盖 valueForUndefinedKey:setValue:forUndefinedKey 来做一些比引发异常更有用的事情。

另一方面,如果您试图在运行时内省(introspection)您不知道的对象,则必须使用运行时方法来执行此操作。您可以使用 Objective-C 运行时本身并调用 class_copyPropertyListprotocol_copyPropertyList 并处理它们,或者使用 Foundation 并调用 respondsToSelector给定属性的 KVC getter/setter 对象,例如,对于属性 foo,您可以调用类似 [someObject respondsToSelector:NSSelectorFromString(@"foo")]; .

关于iphone - 如何使用键值编码判断对象是否存在键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868708/

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