类别不再有效

时间:2013-06-15 04:15:10

标签: objective-c objective-c-category

今天突然间,类别不再起作用。我在NSDate上做了一个类别(NSDate +添加)。多年来我一直这样做...... 如果我退出#import "NSDate+additions.h",对类别内容的任何调用都会在xcode中生成警告,就像应该这样。因此,如果我加入它,警告就会消失。但是在运行时它会由于无法识别的选择器错误而崩溃。我最近安装了XCode 5并且意外地打开了我的项目一次。这些类别没有用,所以我认为XCode 5是罪魁祸首,并在XCode 4中打开了这个项目。但是,类别只是不起作用。

1 个答案:

答案 0 :(得分:1)

这可能是因为您忘记将项目与NSDate+additions.m文件链接(或者Xcode5 DP是否意外将其从目标中删除了?)。

在Project Navigator中选择您的NSDate+additions.m文件并检查它是否已添加到所有相关目标(选中右侧检查器面板上的复选框)


或者,如果您的NSDate+additions.m文件是在静态库(xxx.a)中编译的,并且您链接到该库,请不要忘记添加-ObjC标志到“其他链接器标志”构建设置,以便链接器将导入.a库中的类别,包括NSDate+additions.m(如果它属于该静态库)