gpt4 book ai didi

cocoa - Mac OS X 10.7.3 添加 -[NSDictionary stringForKey :] method?

转载 作者:行者123 更新时间:2023-12-03 17:42:18 25 4
gpt4 key购买 nike

我收到了经我确认的报告,我的一个应用程序中的一项功能在 10.7.3 下出现故障。经过调查,10.7.3 似乎在 NSDictionary 上引入了一个私有(private)的 -stringForKey: 方法。

[NSDictionary respondsToSelector:@selector(stringForKey:)] 返回 NO,正如人们所期望的那样。

但是我在 NSDictionary 上有一个类别方法来实现 -stringForKey: 方法,如下所示(因此它可以用于 NSNumber以及 NSDate 值)。在 10.7.2 及更早版本下,它工作正常;在 10.7.3 下,它返回 nil。直接获取对象和描述效果很好。所以这一定是类别冲突。

- (NSString *)stringForKey:(id)key;
{
return [[self objectForKey:key] description];
}

我想这是支持为类别方法添加前缀的另一个论据,尽管 advice I got from an Apple Application Frameworks Evangelist .

其他人可以证实这一点吗?我不认为这是第三方应用程序的冲突;我认为这是 10.7.3 中的更改。

最佳答案

您应该始终为您在框架类上创建的类别方法添加前缀。毫无疑问。无论 10.7.3 是否引入了此方法,您在声明时不带前缀的事实都是错误的。

顺便说一句,测试 [NSDictionary respondsToSelector:@selector(stringForKey:)] 不一定有效。 NSDictionary 是一个类簇,因此您只需询问抽象父类(super class),而私有(private)方法可能只存在于具体子类上。

关于cocoa - Mac OS X 10.7.3 添加 -[NSDictionary stringForKey :] method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235790/

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