将字符串添加到IOS中的阵列
我想知道如何将字符串添加到可变数组而不必更改原始数组。所以我想我必须做一个数组参数的副本,然后添加字符串。将字符串添加到IOS中的阵列
-(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
{
NSArray *newArray = [NSMutableArray arrayWithArray:array];
[newArray arrayByAddingObject:[string]];
return array;
}
我得到错误预期的identifer,不知道这意味着什么。
ü正在创建新的数组刚才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`
}
不需要用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];
arrayByAddingObject重新初始化数组并将新项添加到该项,而问题只是想将项添加到当前数组并重新初始化,这不是必需的 –
它应该是这样的;
-(NSMutableArray *)arrayByAddingString:(NSString *)string toArray:(NSMutableArray *)array
{
[array addObject:string];
return array;
}
不需要重新初始化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;
}
简单做''[newArray arrayByAddingObject:string];' –
''newArray'是'NSArray'。它应该是'NSMutableArray'! – Lion