【问题标题】:Appending NSDictionary to other NSDictionary将 NSDictionary 附加到其他 NSDictionary
【发布时间】:2012-03-04 11:50:48
【问题描述】:

我有一个NSDictionary,它加载了UITableView。如果用户滚动的次数越来越多,我会调用 API 并提取新数据。该数据再次采用NSDictionary 的形式。是否可以将新的NSDictionary 添加到现有的?

【问题讨论】:

    标签: objective-c ios uitableview nsdictionary


    【解决方案1】:

    你在找这个人:

    [NSMutableDictionary addEntriesFromDictionary:]
    

    确保您的 UITableView 字典是 NSMutableDictionary

    Check it here

    【讨论】:

    • 是的,但是为什么要在字典中出现重复的键条目?
    • 我要的是-[NSDictionary dictionaryByAddEntriesFromDictionary:],但是NSDictionary中没有这样的方法。
    • 显然,这只是字典的联合操作,而不是重复条目。 @JohanKarlsson
    • @DawnSong 如果我是您,我会使用以下方法在 NSDictionary 上创建一个类别:+ (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } 很抱歉出现格式问题。 StackOverflow 不允许在 cmets 中使用友好的多行代码格式。
    • 我认为真正的问题是如何在没有中间可变对象的情况下做到这一点。这种东西的主要好处(例如,存在于 NSString 中)是线程安全的。
    【解决方案2】:

    使用 NSMutableDictionary addEntriesFromDictionary 将两个字典添加到新的可变字典中。然后,您可以从可变字典创建一个 NSDictionary,但通常没有必要让字典不可变。

    【讨论】:

      【解决方案3】:

      您的 NSDictionary 是否包含其他 NSDictionaries?听起来你需要一个 NSMutableArray ,你可以在最后添加 NSDictionaries 。假设您可以控制传入的数据流并且不会在数组中冒重复的风险,那么您当然可以追加数据。

      NSMutableArray *array = [[NSMutableArray alloc] init];
      arrayCount = [array count]; // check the item count
      [array addObject:dictToAppend];
      

      没有看到您如何实现它,我无法提供更详细的代码示例。附加项目很容易做到,但知道它只能使用可变版本的数组或字典来完成。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-17
        相关资源
        最近更新 更多