目标C:由于未捕获的异常\'NSInvalidArgumentException\'终止应用程序
|
我的应用程序崩溃,错误为“由于未捕获的异常\'NSInvalidArgumentException \',正在终止应用程序,原因:\'-[CALayer firstName]:无法识别的选择器已发送到实例0x4d382c0 \'\”。
这就是我想做的。
1)我创建了一个\'Person \'类来存储诸如firstName,lastName,电子邮件添加和电话号码之类的信息
Person.m文件:
@implementation Person
@synthesize firstName, lastName, email, phoneNumber;
-(Person *)initWithfirstName:(NSString *)thisFirstName lastName:(NSString *)thisLastName email (NSString *)thisEmail phoneNumber:(NSString*)thisPhoneNumber
{
if(self = [super init])
{
self.firstName = thisFirstName;
self.lastName = thisLastName;
self.email = thisEmail;
self.phoneNumber = thisPhoneNumber;
}
return self;
}
@end
2)将人员列表存储在可变数组中
Person *firstPerson = [[Person alloc] initWithfirstName:@\"Zen\" lastName:@\"Yong\" email:@\"\" phoneNumber:@\"\"];
person = firstPerson;
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:person, nil];
personArray = array;
[array release];
3)在表格视图中列出人的信息列表
int row = [indexPath row];
Person *aPerson = (Person *)[self.personArray objectAtIndex:row];
cell.textLabel.text = aPerson.firstName;
您可以帮忙告知为什么我在线程开头列出了错误吗?
感谢您的帮助!
震
没有找到相关结果
已邀请:
2 个回复
温拎凯玛
至
应该解决问题。您现在拥有的方式是将数组指针分配给personArray指针。您必须为属性调用set setter方法以获取正确的内存管理。
献导外拘
这将创建一个数组,然后立即释放它。阵列可能已被释放。但是,其中的人员对象尚未释放,因此,除非您稍后进行操作,否则它会泄漏。您可能想要更多类似的东西:
然后,您必须将数组保存在某个位置,因此,如果personArray是实例变量,则可以
或者它是一个属性(更好):
最后一点,最好不要在
或
方法中使用属性。您的
应该看起来像:
而且,别忘了在ѭ10中释放所有内容。