Я столкнулся с плохой ошибкой доступа, когда элемент моего NSOutlineView
расширен. Когда NSStrings
выделяются stringWithFormat:
, при расширении контура возникает ошибка EXC_BAD_ACCESS
. Когда они заменяются строками в форме @ "string", ошибки не возникает.EXC_BAD_ACCESS с NSOutlineView и stringWithFormat
Я предполагаю, что что-то выпускается с ARC, но я не знаю, как это избежать. Что здесь не так?
-(NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
if(!item)
return [_characterList count];
else if([item isKindOfClass:[Character class]])
return 3;
return 0;
}
-(BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
if([item isKindOfClass:[Character class]])
return YES;
return NO;
}
-(id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
if (!item)
return (Character*)[_characterList objectAtIndex:index];
else {
NSLog(@"%@", item);
Character *characterItem = (Character*)item;
switch (index) {
case 0:
return [NSString stringWithFormat:@"Api key: %@", [characterItem apiKey]];
break;
case 1:
return [NSString stringWithFormat:@"Access Mask: %@", [characterItem mask]];
break;
case 2:
return @"Last Updated: today";
break;
default:
break;
}
}
return nil;
}
-(id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
if([item isKindOfClass:[Character class]])
return [(Character*)item name];
else
return item;
return nil;
}
Попробуйте добавить копию как: return [[NSString stringWithFormat: ...] copy]; – stosha
Нет кубиков. Это была моя первая наклонность. – promacuser
Попробуйте включить зомби – stosha