gpt4 book ai didi

ios - 程序收到信号 : EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-28 20:45:23 25 4
gpt4 key购买 nike

我的 UITableViewController 子类中有以下方法:

-(void)populateDataStorage{

NSString *path = [[NSBundle mainBundle] pathForResource:@"FakeData" ofType:@"plist"];

if(path){
NSArray *plistData = [[NSArray alloc] initWithContentsOfFile:path];
NSEnumerator *enumerator = [plistData objectEnumerator];

NSArray *personResults;

Photo *photo;
Person *person;

id currItem = [enumerator nextObject];

while (currItem != nil) {
photo = (Photo *)[NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext: [[FlickrFetcher sharedInstance] managedObjectContext]];

photo.name = [currItem objectForKey:@"name"];
photo.path = [currItem objectForKey:@"path"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", [currItem objectForKey:@"user"]];

personResults = [[FlickrFetcher sharedInstance] fetchManagedObjectsForEntity:@"Person" withPredicate:predicate];

if ([personResults count] > 0) {
person = [personResults objectAtIndex:0];
}
else {
person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[[FlickrFetcher sharedInstance] managedObjectContext]];
person.name = [currItem objectForKey:@"user"];
}

photo.person = person;
[person addPhotosObject:photo];

NSLog(@"Photo %@ added for user %@", photo.name, person.name);

currItem = [enumerator nextObject];
}

[plistData release];
}

我在我的 AppDelegate 的 didFinishLaunchingWithOptions 方法中调用它,该方法也在同一个 AppDelegate 中,当它被调用时,我在调试时得到它说的错误,如果我不调试该行,它将运行方法和加载没有问题。如果我根本不调试,它就不会调用该方法。

编辑:根据答案更改了代码,问题仍然存在,如果我只是运行什么也没有发生,但在调试时出现错误。当我调试整个方法时,没有显示任何错误。

最佳答案

您对 NSLog 的调用试图访问您的 person 变量的 name 属性。然而,当你声明你的 person 变量时,你没有初始化它,所以它指向垃圾。你只在你的 else 子句中给它一个有效值,所以有时你的 NSLog 正在访问一个未初始化的对象。

关于ios - 程序收到信号 : EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6616273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com