将由逗号分隔的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。 你需要更多的“@”。