开发者

get NSString from NSFetchRequest issue

I'm using Core Data and I need to loop thru the result of the request, create several custom objects in the loop and store them in a NSMUtableArray, so I can send it to another view to feed a UI component. This is what I'm doing:

    NSMutableArray *persons = [[NSMutableArray alloc] init];

    NSError *error = nil;
    NSManagedObjectContext *context = [self managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription 
                                   entityForName:@"Person" inManagedObjectContext:context];
    [fetchRequest setEntity:entity];
  开发者_StackOverflow中文版  NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
    for (NSManagedObject *info in fetchedObjects) {

        ToggleButtonInfo *btn = [[ToggleButtonInfo alloc] init];

        NSString *personName = [NSString stringWithFormat:@"ww %@", [info valueForKey:@"name"]];
        NSLog(@"pn: %@", personName);
        [btn setButtonInfo:personName];

        [persons addObject:btn];
    }        
    [fetchRequest release];

    return persons;

The loop is working just fine, the information is there. The problem is that I get a "EXC_BAD_ACCESS" in my component if I use:

[info valueForKey:@"name"]

if I do something like this:

[btn setButtonInfo:@"something else here"];

everything works fine. So it looks like info is been de-allocated and that is causing the error, right? I try creating the scring using stringWithFormat but it doesn't work, same error.

An ideas?


Where do you get the EXC_BAD_ACCESS? I assume it's later when you're displaying the button? -setButtonInfo: probably isn't retaining, or you're over-releasing somewhere else.

Note that you're leaking btn in this code.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜