将字符串添加到IOS中的阵列

问题描述:

我想知道如何将字符串添加到可变数组而不必更改原始数组。所以我想我必须做一个数组参数的副本,然后添加字符串。将字符串添加到IOS中的阵列

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

     [newArray arrayByAddingObject:[string]]; 

return array; 
} 

我得到错误预期的identifer,不知道这意味着什么。

+0

简单做''[newArray arrayByAddingObject:string];' –

+1

''newArray'是'NSArray'。它应该是'NSMutableArray'! – Lion

ü正在创建新的数组刚才NSArray这是不可变的,而且你企图添加的对象是字符串为什么要使用的[string],U可以像下面,

-(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` 
} 
+1

不需要用arrayWithArray重新初始化数组 –

使用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]; 

    } 

有额外[]在代码,将其更改为:

[newArray arrayByAddingObject:string]; 
+0

arrayByAddingObject重新初始化数组并将新项添加到该项,而问题只是想将项添加到当前数组并重新初始化,这不是必需的 –

它应该是这样的;

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

      return array; 
    } 
+2

不需要重新初始化arrayWithArray的数组。 –

您可以使用这样

在斯威夫特

func arrayByAddingString(string: String, array: NSMutableArray) -> { 
array.addObject(String) 
return array 
} 

在Objective C中

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