【问题标题】:How to return an NSMutableArray from an NSSet如何从 NSSet 返回 NSMutableArray
【发布时间】:2011-04-19 02:53:23
【问题描述】:

我可以像这样将NSSet 的内容放入NSMutableArray 中:

NSMutableArray *array = [set allObjects];

编译器会抱怨,因为 [set allObjects] 返回的是 NSArray 而不是 NSMutableArray。应该如何解决?

【问题讨论】:

    标签: objective-c cocoa-touch nsmutablearray nsarray nsset


    【解决方案1】:

    由于-allObjects 返回一个数组,您可以创建一个可变版本:

    NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];
    

    或者,如果您想处理对象所有权:

    NSMutableArray *array = [[set allObjects] mutableCopy];
    

    【讨论】:

    • 注意:如果setnil,这两种方法会有细微的差别。
    【解决方案2】:

    对于有序集合使用:

    NSArray *myArray = [[myOrderedSet array] mutableCopy];
    

    【讨论】:

    • 似乎没有 NSSet - array 方法。
    【解决方案3】:

    我通过使用 NSMutableArray's 方法 'addObjectsFromArray' 将所有 NSSet 对象分配给 NSMutableArray 解决了崩溃问题,例如:

    [mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]];
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多