繁体   English   中英

NSMutableArray不返回值并分配给变量

[英]NSMutableArray does not return value and assign to variable

我的代码中有一个NSMutableArray ,我想访问该数组的最后一个元素并将该元素保存在整数n变量中。 但是当我NSLogn并没有给我正确的值,它给了我一个垃圾值。

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM