アイテムを展開すると、不正なアクセス エラーが発生しますNSOutlineView
。NSStrings
で配置した場合、アウトライン展開時にエラーが発生するstringWithFormat:
。EXC_BAD_ACCESS
@"string" の形式で文字列に置き換えた場合、エラーは発生しません。
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;
}