【发布时间】:2013-03-03 15:39:21
【问题描述】:
如果一个 XCode 项目有两个类别:
@implementation NSData (test1)
- (void) testData {
NSLog(@"test data 1");
}
@end
和
@implementation NSData (test2)
- (void) testData {
NSLog(@"test data 2");
}
@end
这个的预期输出是什么:
NSData* testData = [[NSData alloc] init];
[testData testData];
我得到的输出总是
#import "NSData+test1.h"
对此有何解释?有没有办法强制第一类?
这里的问题是,如果您要导入两个具有相同名称类别的静态库的 SDK,您如何解决这个问题。我假设唯一的方法是要求 SDK 创建者为方法名称使用前缀?
【问题讨论】:
-
您是否在同一个 .m 文件中导入了两个类别?
-
该方法调用的结果未定义。不要永远运送这样的东西。
标签: ios iphone objective-c ipad