将由逗号分隔的NSString转换为NSArray

时间:2011-11-20 19:45:38

标签: objective-c ios nsstring nsarray

  

可能重复:
  Convert NSArray to NSString in Objective-C

我有一个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:@","];

但是newArray的内容现在不同了:

(       
"(
    \"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"",
        "
    \"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"",
        "
    \"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\""
)"
) 

知道我需要做些什么才能解决这个问题?

3 个答案:

答案 0 :(得分:41)

有两种方法

使用

NSString *myString = [myArray componentsJoinedByString:@","]; //instead of [myArray description];

答案 1 :(得分:3)

这是NSArray打印出来的。

"(
\"<MPConcreteMediaItem: 0x1b7dd0> 8671085923283003246\"",
    "
\"<MPConcreteMediaItem: 0x1b7e50> 16275751483823231324\"",
    "
\"<MPConcreteMediaItem: 0x1b7e70> 4976771456698615367\""
)"

要打印出数组中的各个元素,请尝试此操作,看看会发生什么

NSString *myString1 = [myArray objectAtIndex:1];
NSString *myString2 = [myArray objectAtIndex:2];
NSLog(myString1);
NSLog(myString2);

答案 2 :(得分:2)

也许我错过了一些东西但你正在对“C”字符串进行操作而不是NSStrings。你需要更多的“@”s。