Three20 - SIGABRT при установке TTTableLongTextItem в TTStyledText - PullRequest
1 голос
/ 26 марта 2010

Мой код выглядит следующим образом

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 немного скудна!

Ответы [ 3 ]

3 голосов
/ 28 марта 2010

Вы также перезаписываете 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.

2 голосов
/ 26 марта 2010

Свойство text в TTTableLongTextItem не относится к типу TTStyledText, это просто NSString.

TTStyledText даже не подкласс NSString.

0 голосов
/ 28 марта 2010

Вы не инициализировали descItem, вы только распределили его. Это основная идиома Какао, ее не нужно указывать в документации каждой библиотеки.

По крайней мере, вам нужно позвонить -init

...