用于循环的 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 不递增的主要内容,如果未能解决你的问题,请参考以下文章

仅用于本地文件的图像选择器,隐藏 Dropbox

Dropbox 迁移(API v1 已停用)iOS 目标 c(备份、恢复)

ruby 用于备份Postgresql到Dropbox帐户的备份文件

listFolder SwiftyDropbox v2

长短期记忆网络 LSTM 深层循环神经网络 Deep RNN 双向循环神经网络 Bidirectional RNN 动手学深度学习v2

长短期记忆网络 LSTM 深层循环神经网络 Deep RNN 双向循环神经网络 Bidirectional RNN 动手学深度学习v2