NSIntegerをintに変換する方法。
NSInteger nsi = 1; int i = nsi;
以上。
エラーで落ちるときは、NSIntegerのObjectが生成されていない事を疑う。
例1)
NSMutableArray *ma; NSInteger i = [ma count];
とか、
例2)
NSUserDefaults *userDafaults = [NSUserDefaults standardUserDefaults]; NSData *data = [userDafaults dataForKey:@"list"]; _ma = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 別メッソドにて int i = [_ma count];
とすると、落ちる。
例1は、allocしていないのが原因。
NSMutableArray *ma = [ [NSMutableArray alloc] init];
例2は、retainしていないのが原因。
_ma = [ [NSKeyedUnarchiver unarchiveObjectWithData:data] retain];
とすれば、解決するだろう。