Objective C componentsSeparatedByCharactersInSet

时间:2013-04-21 00:23:01

标签: objective-c

我正在使用Objective C中的componentsSeparatedByCharactersInSet方法从数组中读取数据。当我的数组包含多个带分隔符的参数时,它工作正常,但是当我的数组只有一个参数时,该方法不返回任何内容。例如:

array = [x*y*z];

newAray = [array componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*"]];

//returns newArray = [x,y,z] - this is good

array = [x];

newAray = [array componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*"]];

//returns nothing - this is bad

有没有办法解决这个问题,所以第二个例子会返回newArray = [x]而不改变第一个数组的格式?

1 个答案:

答案 0 :(得分:2)

componentsSeparatedByCharactersInSet”是“NSString”中存在的一种方法,因此,为了能够使用它,您的“array”对象必须是“{{ 1}}“对象。

我的解决方案是在NSString上添加一个类别,它返回由字符串中的字符分隔的组件数组,如果该调用返回的数组为空,则返回整个字符串(如果没有匹配允许的话,则会发生这种情况)分开的组件)。

这就是NSString上的类别:

NSString