将由逗号分隔的NSString转换为NSArray
可能重复:
在Objective-C中将NSArray转换为NSString
我有一个NSArray myArray的数组,这里是内容:
( "<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246", "<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324", "<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367" )
我用下面的代码分配给一个NSString myString:
NSString *myString = [myArray description];
而且输出仍然如预期:
( "<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246", "<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324", "<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367" )
现在,我想将myString转换回一个名为newArray的数组,我使用了这个:
NSArray *newArray = [[NSArray alloc]init]; newArray = [myString componentsSeparatedByString:@","];
但是新arrays的内容现在是不同的:
( "( \"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"", " \"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"", " \"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\"" )" )
任何想法我需要做什么来解决这个问题?
有两种方法
- – (NSArray *)componentsSeparatedByString:(NSString *)分隔符
- – (NSString *)componentsJoinedByString:(NSString *)分隔符
使用
NSString *myString = [myArray componentsJoinedByString:@","]; //instead of [myArray description];
这是NSArray打印出来的。
"( \"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"", " \"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"", " \"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\"" )"
要打印出arrays中的单个元素,请尝试一下,看看会发生什么
NSString *myString1 = [myArray objectAtIndex:1]; NSString *myString2 = [myArray objectAtIndex:2]; NSLog(myString1); NSLog(myString2);
也许我错过了一些东西,但是你正在对“C”string进行操作而不是NSStrings。 你需要更多的“@”。