设置TTSectionedDataSource

时间:2011-01-19 09:44:23

标签: iphone sdk three20

我正在尝试创建一个包含多个部分的TTTable。我把所有内容放在一个看起来有点像这样的数组中。

                       @"Styles",
                       [TTTableTextItem itemWithText:@"Styled Views" URL:@"tt://styleTest"],
                       [TTTableTextItem itemWithText:@"Styled Labels" URL:@"tt://styledTextTest"],

                       @"Controls",
                       [TTTableTextItem itemWithText:@"Buttons" URL:@"tt://buttonTest"],
                       [TTTableTextItem itemWithText:@"Tabs" URL:@"tt://tabBarTest"],
                       [TTTableTextItem itemWithText:@"Composers" URL:@"tt://composerTest"],

如何将这些值放在数据源中。我试过了:

self.dataSource = [TTSectionedDataSource dataSourceWithArrays:myArray]; 

然而,这似乎使我的应用程序崩溃。

2 个答案:

答案 0 :(得分:3)

如果要包含整个赋值语句,例如

,将会很有帮助
myArray = ... ;

我的猜测是代码在赋值语句中的最后“]”之前缺少“,nil”。

答案 1 :(得分:0)

就个人而言,我使用[TTSectionedDataSource initWithItems:sections:],其中items是一个包含TTTableItem s的每个部分数组的数组。 E.g:

NSAutoreleasePool* localPool = [[NSAutoreleasePool alloc] init];
NSMutableArray* items = [[NSMutableArray alloc] init];
NSMutableArray* sections = [[NSMutableArray alloc] init];

// Styles Section
[sections addObject:NSLocalizedString(@"Styles", @"Styles")];
NSMutableArray* itemsRow = [[NSMutableArray alloc] init];
[itemsRow addObject:[TTTableTextItem itemWithText:@"Styled Views" URL:@"tt://styleTest"]];
// Add more 'Styles' rows here...
[items addObject:itemsRow];
TT_RELEASE_SAFELY(itemsRow);

// Controls Section
[sections addObject:NSLocalizedString(@"Controls", @"Controls")];
itemsRow = [[NSMutableArray alloc] init];
[itemsRow addObject:[TTTableTextItem itemWithText:@"Buttons" URL:@"tt://buttonTest"]];
// Add more 'Controls' rows here...
[items addObject:itemsRow];
TT_RELEASE_SAFELY(itemsRow);
TTSectionedDataSource* ds = [[TTSectionedDataSource alloc] initWithItems:items sections:sections];

// Cleanup
TT_RELEASE_SAFELY(items);
TT_RELEASE_SAFELY(sections);
[localPool drain];