2011-04-25 35 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

相关问题