将数组计数分配给int,NSNumber或NSUInteger失败

时间:2011-11-21 11:22:15

标签: objective-c nsarray

将int,NSNumber和NSUInteger分配给数组计数失败...

这是我的代码行

 int diamondCount = [diamonds count];

钻石是一种纳米阵列

我构建了应用程序并在该行上抛出了EXC_BAD_ACESS

所以我查看了NSArray计数方法,发现它返回一个nsuinteger

所以我做了:

     NSUInteger diamondCount = [diamonds count]; 

仍然把EXC_BAD_ACCESS扔给我,所以我最后将它分配给一个带有numberWithInteger的nsnumber:

它平静下来......任何想法?

2 个答案:

答案 0 :(得分:3)

diamonds并未指向真实(且有效)的NSArray。检查它的初始化。

答案 1 :(得分:0)

试试这个:

NSArray *myArray;
NSDate *aDate = [NSDate distantFuture];
NSValue *aValue = [NSNumber numberWithInt:5];
NSString *aString = @"a string";

myArray = [NSArray arrayWithObjects:aDate, aValue, aString, nil];
int i = [myArray count];
NSLog(@"%d",i);
NSInteger j = [myArray count];
NSLog(@"%d",j);
NSNumber *k = [myArray count];
NSLog(@"%d",k);
/*output
2011-11-21 17:01:48.272 test[48840:1303] 3
2011-11-21 17:01:48.272 test[48840:1303] 3
2011-11-21 17:01:48.273 test[48840:1303] 3*/