我使用ttmodule.py在Xcode 4.1(Build 4B110)的项目中添加了三个20。当我导入并使用某些功能时,一切都很好。
然后当我使用 TTStyledTextLabel 时出现SIGABRT错误并崩溃:
NSString* kText = @"<a href=\"http://www.google.com\">Google</a>";
TTStyledTextLabel* label = [[[TTStyledTextLabel alloc] initWithFrame:CGRectMake(0, 0, 200, 1)] autorelease];
label.text = [TTStyledText textFromXHTML:kText lineBreaks:YES URLs:YES];
[self.view addSubview:label];
和控制台错误信息:
-[TTStyledLinkNode findLastSibling:]: unrecognized selector sent to instance 0x5e830a0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TTStyledLinkNode findLastSibling:]: unrecognized selector sent to instance 0x5e830a0'
*** Call stack at first throw:
(
0 CoreFoundation 0x0192a5a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x01a7e313 objc_exception_throw + 44
2 CoreFoundation 0x0192c0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x0189b966 ___forwarding___ + 966
4 CoreFoundation 0x0189b522 _CF_forwarding_prep_0 + 50
5 Xxxxxxxxx 0x000fc922 -[TTStyledElement addChild:] + 148
6 Xxxxxxxxx 0x0010584d -[TTStyledTextParser addNode:] + 176
7 Xxxxxxxxx 0x00105ca8 -[TTStyledTextParser parseURLs:] + 479
8 Xxxxxxxxx 0x00106b5c -[TTStyledTextParser parseText:URLs:] + 55
9 Xxxxxxxxx 0x00106f30 -[TTStyledTextParser parseText:] + 595
10 Xxxxxxxxx 0x00105a85 -[TTStyledTextParser flushCharacters] + 104
11 Xxxxxxxxx 0x0010690e -[TTStyledTextParser parser:didEndElement:namespaceURI:qualifiedName:] + 36
12 Foundation 0x01657959 _endElementNs + 453
13 libxml2.2.dylib 0x01dc67c7 xmlParseXMLDecl + 1346
14 libxml2.2.dylib 0x01dd14d1 xmlParseChunk + 3984
15 Foundation 0x0165715a -[NSXMLParser parse] + 321
16 Xxxxxxxxx 0x00106cd6 -[TTStyledTextParser parseXHTML:] + 256
17 Xxxxxxxxx 0x001039bb +[TTStyledText textFromXHTML:lineBreaks:URLs:] + 195
18 Xxxxxxxxx 0x000038fa -[Xxxxxxxxx someMethod] + 2282
是否有Three20的错误?我根本不知道。
答案 0 :(得分:0)
您的其他链接器标志是否包含-ObjC
?
正如您已经提到的,它看起来好像没有正确链接类别。最常见的原因是不将-ObjC
指定为链接器标志。或者像我之前那样使用-Objc
发生事故。
如果你已经有-ObjC
,你可以尝试将-all_load
添加到其他链接器标志,但是对于最近版本的Xcode或Three20,这不再是必需的。