在IOS中将字符串添加到数组

在IOS中将字符串添加到数组,ios,arrays,copy,nsmutablearray,Ios,Arrays,Copy,Nsmutablearray,我想知道如何在不改变原始数组的情况下向可变数组添加字符串。所以我想我必须复制一个数组参数,然后向其中添加字符串 -(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array { NSArray *newArray = [NSMutableArray arrayWithArray:array]; [newArray arrayByAd

我想知道如何在不改变原始数组的情况下向可变数组添加字符串。所以我想我必须复制一个数组参数,然后向其中添加字符串

    -(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
     {
       NSArray *newArray = [NSMutableArray arrayWithArray:array];

       [newArray arrayByAddingObject:[string]];

return array;
}

我得到了错误预期标识符,不确定这意味着什么。

使用addObject方法:

[array addObject:@"HEllo"];
其中数组是一个
NSMutableArray

在您的示例方法中,它将如下所示:

 -(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
   return [array addObject:string];

  }
你只需要做的是

 -(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
   return [array addObject:string];

  }

你正在创建一个新数组,它只是
NSArray
,它是不可变的,而且你试图添加的对象是string为什么要使用
[string]
,你可以像下面这样做

 -(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
  {
    NSMutableArray *newArray = [NSMutableArray arrayWithArray:array];
    [newArray addObject:string]; //no need of square brace, because string is an object 
    return newArray; //return the new array not the `array`
 }

代码中有额外的
[]
,请将其更改为:

[newArray arrayByAddingObject:string];
应该是这样,

-(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
    {
           [array addObject:string];

            return array;
    }
你可以这样用

迅速地

在目标C中


无需使用arrayWithArray重新初始化数组。简单操作如下
[newArray arrayByAddingObject:string]
您的
newArray
NSArray
。它应该是
NSMutableArray
!!无需使用arrayWithArrayarrayByAddingObject重新初始化数组并将新项添加到该数组中,而问题只想将该项添加到当前数组中,无需重新初始化
func arrayByAddingString(string: String, array: NSMutableArray) -> {
array.addObject(String)
return array
}
-(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array{
[array addObject:string];    
return array;
}