用于循环的 dropbox V2 DBFILESmetadata 不递增
Posted
技术标签:
【中文标题】用于循环的 dropbox V2 DBFILESmetadata 不递增【英文标题】:dropbox V2 DBFILESmetadata for loop not incrementating 【发布时间】:2017-04-14 00:00:51 【问题描述】:我很难弄清楚如何合并一个计数器,所以“setObject”在这个 for..loop 中增加了它的“保存”。
NSMutableArray *NewArray = [NSMutableArray new];
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
for ( DBFILESMetadata *entry in result.entries)
[dict setObject:entry.pathDisplay forKey:@"pathDisplay"];
[dict setObject:entry.name forKey:@"name"];
[NewArray addObject:dict];
我确定这是一个简单的答案,最后一行只是保存 result.entries 的最后一项。 NewArray 具有正确的项目数,但数组中的每个项目都是 result.entries 的最后一项:
2017-04-13 16:47:58.876 Sites[11145:688352] NewArray (
name = 229;
pathDisplay = "/Sites/229";
,
name = 229;
pathDisplay = "/Sites/229";
).
我需要添加某种类型的计数器来设置下一个对象,只是对它应该去哪里感到困惑。
提前致谢。
我想通了:
for ( DBFILESMetadata *entry in result.entries)
[imagePaths addObject:entry.pathDisplay];
[names addObject:entry.name];
for(int i=0; i<[result.entries count]; i++)
dict = @@"name": names[i], @"pathDisplay": imagePaths[i];
[allObjects addObject:dict];
【问题讨论】:
【参考方案1】:字典项键必须不同。否则,您总是会看到最后设置的项目。因为当保存相同的键时字典会覆盖。所以你可以像下面这样使用。
1.解决方案
NSMutableArray *NewArray = [NSMutableArray new];
NSMutableDictionary *dict = [NSMutableDictionary 字典];
int i = 0;
for ( DBFILESMetadata *entry in result.entries)
[dict setObject:entry.pathDisplay forKey:[NSString stringWithFormat:@"pathDisplay%d",i]];
[dict setObject:entry.name forKey:[NSString stringWithFormat:@"name%d",i]];
[NewArray addObject:dict];
i++;
2.解决方案
创建一个包含 json 属性的类,如下所示。
HoldJsonDataClass.h
@interface HoldJsonDataClass : JsonData
@property (nonatomic,retain) NSString *name;
@property (nonatomic,retain) NSString * pathDisplay;
@end
HoldJsonDataClass.m
@implementation HoldJsonDataClass
@end
然后将类填充到数组中。这个解决方案更清晰。
for ( DBFILESMetadata *entry in result.entries)
HoldJsonDataClass *holdJsonClass = [HoldJsonDataClass new];
holdJsonClass.name = entry.name;
holdJsonClass.pathDisplay = entry.pathDisplay;
[NewArray addObject:holdJsonClass];
【讨论】:
以上是关于用于循环的 dropbox V2 DBFILESmetadata 不递增的主要内容,如果未能解决你的问题,请参考以下文章