我想在我的階段代碼中讀取和顯示我的數組到tableview中。由於未捕獲的異常「NSInvalidArgumentException」,原因*終止應用程序:但是,我的應用程序崩潰,並給予該錯誤信息「 - [__ NSCFDictionary objectAtIndex:]:無法識別的選擇發送到實例0x4b43ee0」顯示數組從plist在tableview單元格中的問題
我能夠顯示階段中數組的行數,但不能在表格單元格內顯示名稱。
下面是我的plist和代碼。
根(陣列)
Item 0 (Dict) Project Name (String) Stage (Dict) Analysis (Array) Design (Array) Develop (Array) Implement (Array)
以我viewDidLoad方法,我稱爲
//course is a nsdictionary which is pass down from the previous view
stages = [course objectForKey:@"Stage"];
的tableview方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSInteger rows = 0;
if (section == 0){
rows = 1;
}
if (section == 1) {
return [stages count];
}
return rows;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"StagesCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
}
// Set up the cell
if (indexPath.section == 0) {
if (indexPath.row == 0) {
cell.textLabel.text = @"Project Name";
cell.detailTextLabel.text = [course objectForKey:@"ProjectName"];;
}
}
if (indexPath.section == 1) {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
NSString *cellvalue = [stages objectAtIndex:indexPath.row];
cell.textLabel.text = cellvalue;
}
return cell;
}
預先感謝(:
感謝您的回覆。我犯了一些錯誤的錯誤,並編輯它們(:嗯,但我已經在我的viewdidload中使用objectforkey方法,或者你的意思是我必須在cellforrowatindex中再次使用該方法嗎?謝謝 – Grace
是的,你必須,因爲你的課程變量是一個字典,所以在那裏objectforkey是好的,但也是階段變量是一個字典,所以你也必須在那裏使用objectforkey。 –