【问题标题】:addObject to NSArray in Objective-C在 Objective-C 中将对象添加到 NSArray
【发布时间】:2015-06-25 18:30:59
【问题描述】:

如何使用此代码将对象添加到 NSArray?尝试执行此操作时收到此错误消息。

NSArray *shoppingList = @[@"Eggs", @"Milk"];
NSString *flour = @"Flour";
[shoppingList addObject:flour];
shoppingList += @["Baking Powder"]

错误信息

/Users/xxxxx/Documents/iOS/xxxxx/main.m:54:23: No visible @interface for 'NSArray' declares the selector 'addObject:'

【问题讨论】:

  • 使用 NSMutableArray 代替,因为它是动态的
  • NSArray adding elements 的可能重复项
  • NSMutableArray *imageArray; imageArray =[[NSMutableArray alloc]init]; [imageArray addObject:imagename];

标签: ios objective-c nsarray


【解决方案1】:

addObject 适用于 NSMutableArray,而不适用于不可变的 NSArray

如果您可以控制自己创建的数组,请创建 shoppingList NSMutableArray:

NSMutableArray *shoppingList = [@[@"Eggs", @"Milk"] mutableCopy];
[shoppingList addObject:flour]; // Works with NSMutableArray

否则,使用效率较低

shoppingList = [shoppingList arrayByAddingObject:flour]; // Makes a copy

【讨论】:

    【解决方案2】:

    您不能将对象添加到 NSArray。改用 NSMutableArray :)

    【讨论】:

      【解决方案3】:

      您的数组无法更改,因为它被定义为NSArray,它是不可变的(您不能添加或删除元素)使用此方法将其转换为NSMutableArray

      NSMutableArray *mutableShoppingList = [NSMutableArray  arrayWithArray:shoppingList];
      

      那你就可以了

      [mutableShoppingList addObject:flour];
      

      【讨论】:

      • 嗯,[NSMutableArray shoppingList]?看起来您的代码缺少某些内容。
      【解决方案4】:

      NSArray 没有addObject: 方法,为此您必须使用 NSMutableArrayNSMutableArray 用于创建动态数组。

      NSArray *shoppingList = @[@"Eggs", @"Milk"];
      NSString *flour = @"Flour";
      
      NSMutableArray *mutableShoppingList = [NSMutableArray arrayWithArray: shoppingList];
      [mutableShoppingList addObject:flour];
      

      或者

      NSMutableArray *shoppingList = [NSMutableArray arrayWithObjects:@"Eggs", @"Milk",nil];
      NSString *flour = @"Flour";
      [shoppingList addObject:flour];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        相关资源
        最近更新 更多