iPhone tableView中的对象声明

时间:2010-02-12 10:50:39

标签: iphone uitableview object

当我尝试初始化tableView:cellForRowAtIndexPath中的对象时,模拟器崩溃了。我使用的代码是

Claimant *tempClaimant = [[Claimant alloc] init];
tempClaimant = [appDelegate.arrRetailClaims objectAtIndex:0];
NSLog(@"Claimant Name is: %@",tempClaimant.ClaimantName);

这有什么不对吗?在viewDidLoad方法中编写时,相同的代码可以正常工作。请帮忙..

提前致谢, 世斌

2 个答案:

答案 0 :(得分:3)

首先,如果您只需要对数组中现有对象的引用,则没有理由分配和初始化新对象:

//Claimant *tempClaimant = [[Claimant alloc] init];
Claimant *tempClaimant = [appDelegate.arrRetailClaims objectAtIndex:0];

接下来,确保数组和对象按预期存在:

NSLog(@"array = %@ %d",appDelegate.arrRetailClaims,[appDelegate.arrRetailClaims count]);
NSLog(@"tempClaimant = %@",tempClaimant);
NSLog(@"Claimant Name is: %@",tempClaimant.ClaimantName);

答案 1 :(得分:0)

该属性可能尚未分配或在某些时候被释放,因为您正在发送一个取消/取消分配的实例。