[英]NSMutableArray does not return value and assign to variable
我的代码中有一个NSMutableArray
,我想访问该数组的最后一个元素并将该元素保存在整数n
变量中。 但是当我NSLog
时n
并没有给我正确的值,它给了我一个垃圾值。
for(int i=0;i<[array3 count];i++)
{
if(i==([array3 count]-1))
{
n = [array3 objectAtIndex:i];
}
}
NSLog(@"The id is=%d",n);
NSError *error;
NSString *aDocumentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *dataPath = [aDocumentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d",n]];
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error];
数组包含对象,而不是像int这样的标量类型。 尝试以下方法:
id n = [array3 lastObject]; // prettier than objectAtIndex:[array count]-1
NSLog(@"the last object is %@", n); // %@ is an object format descriptor
也许数组包含NSNumbers有意义的整数? 然后,
NSNumber *n = [array3 lastObject];
NSLog(@"the last object is %@ or view it this way %d", n, [n intValue]);
您还可以使用以下更新的语法访问数组:
id n = array3[array3.count-1];
您还可以像这样更快速,简洁地迭代数组:
for (id object in array3) {
NSLog(@"%@", object);
}
它给您一个垃圾值,因为您尝试将对象最有可能投射到原始类型。
另外,不需要for循环。
n = [[array3 lastObject] integerValue];
应该是您需要的一切。 如果那仍然是垃圾,那是因为数组中的对象是垃圾(或不能转换为整数)。 此时,请看一下在哪里设置array3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.