2011-04-25 36 views
0

我有一個食物類型類,從屬性列表中讀取字典的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]; 
+0

你需要表現出更多的代碼。這裏「失敗」是什麼意思?是record.TypeId一個有效的值? – Eiko 2011-04-25 09:02:07

回答

0

我想你已經從筆尖鑑於委託的tableview。以及你從類文件重新加載表。結帳吧。

+0

當用戶按下「添加」按鈕時代理被設置,代碼附加在我的OP – leo 2011-04-25 09:10:16

相關問題