我有點難過,我希望有人能幫助我。我有一個plist,是一組字典。我試圖把它讀入表格。 plist中看起來是這樣的:從包含數組的字典中訪問數據
<array>
<dict>
<key>sectionTitle</key>
<string>A</string>
<key>rowData</key>
<array>
<dict>
<key>Title</key>
<string>Albert Author</string>
<key>dText</key>
<string>text for detail view</string>
</dict>
<dict>
<key>Title</key>
<string>Antony Author</string>
<key>dText</key>
<string>Descriptive text for detail view</string>
</dict>
<dict>
<key>Title</key>
<string>Azerifiel Author</string>
<key>dText</key>
<string>Text for detail view</string>
</dict>
</array>
</dict>
<dict>
<key>sectionTitle</key>
<string>B</string>
<key>rowData</key>
<array>
<dict>
<key>Title</key>
<string>Barny Author</string>
<key>dText</key>
<string>text for detail view</string>
</dict>
<dict>
<key>Title</key>
<string>Bazle Author</string>
<key>dText</key>
<string>text for detail view</string>
</dict>
<dict>
<key>Title</key>
<string>Bruno Author</string>
<key>dText</key>
<string>text for detail view</string>
</dict>
</array>
</dict>
</array>
我的問題是這樣的:我可以做一個類似的結構減去陣列填充表視圖,但我不能讓與陣列工作上面的代碼。我不知道如何處理代碼中的數組,但我無法擺脫它們,因爲我希望對最終表進行索引和分區。以下是我的viewDidLoad方法中的代碼。
- (void)viewDidLoad {
[super viewDidLoad];
// Path to the plist (in the application bundle)
NSString *path = [[NSBundle mainBundle] pathForResource:@"Tester" ofType:@"plist"];
// Build the array from the plist
NSArray *dictArray = [[NSArray alloc] initWithContentsOfFile:path];
NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
for(NSDictionary *dict in dictArray)
{
DictModel *term = [[DictModel alloc] init];
term.sectionTitle = [dict objectForKey:@"sectionTitle"];
term.Title = [dict objectForKey:@"Title"];
term.dText = [dict objectForKey:@"dText"];
[mutableArray addObject:term];
[term release];
}
tableDataSource = [[NSArray alloc] initWithArray:mutableArray];
[mutableArray release];
[dictArray release];
[super viewDidLoad];
}
我有叫DictModel一個單獨的類,它看起來是這樣的:
@interface DictModel : NSObject {
NSString *sectionTitle;
NSString *Title;
NSString *dText;
}
@property(nonatomic, retain) NSString *sectionTitle;
@property(nonatomic,retain) NSString *Title;
@property(nonatomic, retain) NSString *dText;
@end
我要去哪裏錯了?我嘗試導入數組,但無法使其工作。我認爲我在某個地方誤解了某些東西。建議非常感謝。
這是我的行方法的單元格。這可能是顯示問題的地方。我在一個comentator的要求添加了這個:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
DictModel *term = [tableDataSource objectAtIndex:indexPath.row];
cell.textLabel.text = term.Title;
cell.detailTextLabel.text = term.dText;
return cell;
}
那麼究竟是什麼問題呢?您目前是否遇到錯誤或只需要指示如何在編制索引的分組表格中輸出plist? – 2010-07-21 01:37:42
我的表格顯示爲空白。但我知道它正在訪問plist,因爲如果我將rowAtIndex方法指向它,它將顯示sectionTitle字符串。總的來說,我試圖讓我的頭部呈圓形,並且此刻如何訂購/加載它們。 – 2010-07-21 02:35:51
您的表視圖數據源方法被調用。 – Ideveloper 2010-07-21 06:57:01