這裏是整個代碼:iOS版 - 的cellForRowAtIndexPath代碼說明
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"DetailCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2
reuseIdentifier:CellIdentifier];
NSUInteger sectionIndex = [indexPath section];
NSUInteger rowIndex = [indexPath row];
NSDictionary *section = [self.sections objectAtIndex:sectionIndex];
NSArray *rows = [section objectForKey:@"rows"];
NSDictionary *row = [rows objectAtIndex:rowIndex];
cell.textLabel.text = [row objectForKey:@"label"];
cell.detailTextLabel.text = [[self.myManagedObject valueForKey:[row objectForKey:@"key"]] description];
return cell;
}
我的問題是關於:
cell.textLabel.text = [row objectForKey:@"label"];
cell.detailTextLabel.text = [[self.myManagedObject valueForKey:[row objectForKey:@"key"]] description]; //This is NSDate
- 爲什麼採用兩種不同的格式的代碼:objectForKey & valueForKey?
- 爲什麼沒有必要使用objectForKey調用self.myManagedObject?
- 描述的目的是什麼?
objectForKey是你通常用來訪問一個NSDictionary。 valueForKey用於「鍵值編碼」,它是使用類似字典的語法訪問非字典中字段的一般機制。對於「描述」,請查看[NSObject spec](https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#// apple_ref/OCC/intfm/NSObject的/描述)。 – 2013-03-27 20:54:16