我有一個食物類型類,從屬性列表中讀取字典的NSArray的失敗。它存儲整數值和NSString名稱的關係。表視圖總是刷新兩次,在第二次
當我添加一個新的記錄,我將與初始化默認值的記錄,使用食物類型類檢索相應的字符串,然後在「添加記錄視圖」顯示它們。
每次我彈出「添加記錄」視圖(這是一個實現代碼如下子類),所有的細胞都會被刷新兩次。 (我發現這通過在cellForRowAtIndexPath中有一個斷點)。
然後談到這個問題。調試器告訴我,第一次,單元格的文本設置正確。但第二次,同一段代碼無法獲得字符串。失敗意味着它返回nil。這是的cellForRowAtIndexPath代碼:(記錄是一個類變量)
cell.detailTextLabel.text = [FoodTypes TypeName:record.TypeId];
的FoodTypes類被聲明爲
@interface FoodTypes : NSObject {
}
+(NSString*) TypeName: (NSNumber *) Type;
+(NSArray*) SubTypes: (NSNumber *)Type;
+(NSString*) SubType: (NSNumber *)Type atIndex:(NSNumber*)index;
+(NSString*) Unit: (NSNumber *) Type;
+(NSInteger) TypeCount;
@end
而且它在.m文件static NSArray *foodTypes_;
。我不知道桌子爲什麼刷新兩次,是否應該發生兩次? (該record.TypeId
是一致的,雖然)
最大的問題是我不知道爲什麼[FoodTypes TypeName]
工作第一次,但返回nil(感謝英子)的第二次。添加記錄時
代碼:
FoodAddViewController *favCtrl = [[FoodAddViewController alloc] initWithNibName:@"FoodDetailView" bundle:nil];
favCtrl.delegate = self;
NSManagedObjectContext *addingContext = [[NSManagedObjectContext alloc] init];
self.addingManagedObjectContext = addingContext;
[addingManagedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];
favCtrl.record = (FeedRecordClass*)[NSEntityDescription insertNewObjectForEntityForName:@"FeedRecord" inManagedObjectContext:addingContext] ;
[favCtrl.record init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: favCtrl];
[self.navigationController presentModalViewController:navController animated:YES];
[favCtrl release];
[addingContext release];
[navController release];
你需要表現出更多的代碼。這裏「失敗」是什麼意思?是record.TypeId一個有效的值? – Eiko 2011-04-25 09:02:07