gpt4 book ai didi

objective-c - NSDictionary 只返回一项

转载 作者:行者123 更新时间:2023-12-03 17:33:42 44 4
gpt4 key购买 nike

在调用设置字典项的方法后,我尝试访问所有 NSDictionary 值。由于某种原因,在我调用该方法并尝试注销所有项目后,它只返回一个项目,而且它也是字典中的最后一项。

这是我设置字典的位置:

-(void)setDestinationDictionary {

destinationFileDict = [[NSMutableDictionary alloc] init];

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *DestinationFiles = [fileManager contentsOfDirectoryAtPath:destinationPath error:nil];

for (NSString *file in DestinationFiles) {

NSString *sourceFile = [[destinationPath stringByAppendingPathComponent:file] lastPathComponent];
NSImage *image = [NSImage imageNamed:sourceFile];
CGFloat imageWidth = [image size].width;
CGFloat imageHeight = [image size].height;
[destinationFileDict setObject:sourceFile forKey:@"fileName"];
[destinationFileDict setObject:[NSNumber numberWithFloat:imageWidth] forKey:@"imageWidth"];
[destinationFileDict setObject:[NSNumber numberWithFloat:imageHeight] forKey:@"imageHeight"];
}

这是我尝试调用该方法并记录字典内容的地方:

-(void)initiateCopy {

[self setDestinationDictionary];
NSLog(@"%@", destinationFileDict);
}

字典中应该总共有 18 个条目,但我只返回了一个,而且它是最后一条记录。

最佳答案

您的字典包含三个键:fileNameimageWidthimageHeight

setDestinationDictionary 中,每次通过 for 循环时,您都会在同一字典中设置相同的三个键。每次传递都会替换您在前一次传递中存储的值。因此,在setDestinationDictionary结束时,字典仍然只包含三个键,并且值是在最后一次循环中设置的值。

也许您想创建一组字典,每个目标文件一个。或者您可能想使用文件名作为键并将大小存储为值(在这种情况下,请查看 +[NSValue valueWithSize:]-[NSValue sizeValue] )。

关于objective-c - NSDictionary 只返回一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124231/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com