我的代码如下
TTTableLongTextItem *descItem = [[TTTableLongTextItem alloc] autorelease];
TTStyledText *styledDesc = [[TTStyledText alloc] autorelease];
styledDesc = [TTStyledText textWithURLs:@"howdy http://www.google.com"];
//this line causes the SIGABRT:
descItem.text = styledDesc;
//I also get a warning on this line that says "warning: passing argument 1 of 'setText:' from distinct Objective-C type"
我在这里缺少什么?非常感谢任何帮助 - Three20文档有点稀疏!
答案 0 :(得分:3)
你也在夸大styledDesc:
declare a vairable styledDesc, and assign a TTStyledText instance that is autoreleased (but not initialized, should be [[[TTStyledText alloc] init] autorelease];
TTStyledText *styledDesc = [[TTStyledText alloc] autorelease];
//create a new autoreleased TTStyledText instance via the textWithURLS: member function, and assign it to styledDesc. styledDesc abandons the pointer to the one you made with alloc.
styledDesc = [TTStyledText textWithURLs:@"howdy http://www.google.com"];
这是我对你真正想要的猜测:
TTTableLongTextItem *descItem = [[[TTTableLongTextItem alloc] init] autorelease];
descItem.text = @"howdy";
但我真的不知道这些TTTableLongTextItem或TTStyledText对象是什么,所以我无法告诉你很多关于你试图用howdy和google网站做什么。
答案 1 :(得分:2)
text
上的TTTableLongTextItem
属性不属于TTStyledText
类型,只是NSString
。
TTStyledText
甚至不是NSString
的子类。
答案 2 :(得分:0)
你没有初始化descItem,你只是分配了它。这是基本的Cocoa习惯用法,不需要在每个库文档中拼写出来。
至少,您需要调用-init