麻烦链接到yaml框架

时间:2013-04-02 03:32:07

标签: iphone ios xcode frameworks yaml

我正在制作iPhone游戏,并希望将YAML用于数据文件。感谢this question我继续前进并获得了syck library。我设法用xCode编译库并将框架导入我的项目[1]。我的代码成功导入了头文件,xCode甚至找到了完成,但是当我尝试运行以下代码时,我得到一个无效的选择器异常:

NSMutableArray *arr = [[NSMutableArray arrayWithCapacity:4] retain];

[arr addObject:@"FOO BAR BAZ QUUX"];
[arr addObject:@"FOO BAR BAZ QUUX"];
[arr addObject:@"FOO BAR BAZ QUUX"];
[arr addObject:@"FOO BAR BAZ QUUX"];

NSLog([arr yamlDescriptionWithIndent:0]);
[arr release];

这是我得到的错误:

2013-04-01 23:27:50.530 PhaseWrath[13910:207] -[__NSArrayM yamlDescriptionWithIndent:]: unrecognized selector sent to instance 0x5548a30
2013-04-01 23:27:50.533 PhaseWrath[13910:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM yamlDescriptionWithIndent:]: unrecognized selector sent to instance 0x5548a30'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x0145f5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x015b3313 objc_exception_throw + 44
    2   CoreFoundation                      0x014610bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x013d0966 ___forwarding___ + 966
    4   CoreFoundation                      0x013d0522 _CF_forwarding_prep_0 + 50
    5   PhaseWrath                          0x00005e85 +[Skeleton initialize] + 517
    6   libobjc.A.dylib                     0x015b3d9b _class_initialize + 380
    7   libobjc.A.dylib                     0x015bb73f prepareForMethodLookup + 73
...

看起来头文件被解析了,但是在库代码实际链接的地方出了点问题......任何想法?我对xCode很新,并且通常会为iPhone开发。

[1]如果我做错了,可能就是这一步。

1 个答案:

答案 0 :(得分:1)

您是否在构建设置中传递了-ObjC-all_load个链接器标记?当链接到包含Objective-C类别的库时(这是Syck用于向NSArray和其他内置类添加方法的内容),这些是必需的。有关详细信息,请参阅以下内容: