今天突然间,类别不再起作用。我在NSDate上做了一个类别(NSDate +添加)。多年来我一直这样做......
如果我退出#import "NSDate+additions.h"
,对类别内容的任何调用都会在xcode中生成警告,就像应该这样。因此,如果我加入它,警告就会消失。但是在运行时它会由于无法识别的选择器错误而崩溃。我最近安装了XCode 5并且意外地打开了我的项目一次。这些类别没有用,所以我认为XCode 5是罪魁祸首,并在XCode 4中打开了这个项目。但是,类别只是不起作用。
答案 0 :(得分:1)
这可能是因为您忘记将项目与NSDate+additions.m
文件链接(或者Xcode5 DP是否意外将其从目标中删除了?)。
在Project Navigator中选择您的NSDate+additions.m
文件并检查它是否已添加到所有相关目标(选中右侧检查器面板上的复选框)
或者,如果您的NSDate+additions.m
文件是在静态库(xxx.a
)中编译的,并且您链接到该库,请不要忘记添加-ObjC
标志到“其他链接器标志”构建设置,以便链接器将导入.a
库中的类别,包括NSDate+additions.m
(如果它属于该静态库)