Convert NSString separated by comma to NSArray

16,237

Solution 1

There are two methods

Use

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

Solution 2

This is what the NSArray prints out.

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

To print out the individual elements in the array try this and see what happens

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

Solution 3

Maybe I'm missing something but you are doing operations on "C" strings not NSStrings. You need more "@"s.

Share:
16,237
user523234
Author by

user523234

Updated on June 05, 2022

Comments

  • user523234
    user523234 almost 2 years

    Possible Duplicate:
    Convert NSArray to NSString in Objective-C

    I have an array of an NSArray myArray, here is the content:

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

    I used the code below to assign to an NSString myString:

    NSString *myString = [myArray description];
    

    And the out put is still as expected:

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

    Now, say I want to convert myString back to an array named newArray, I used this:

    NSArray *newArray = [[NSArray alloc]init];
    newArray = [myString componentsSeparatedByString:@","];
    

    But the content of the newArray is now different:

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

    Any idea what I need to do to fix this?

  • Paul.s
    Paul.s over 12 years
    I am assuming this is not raw code but the output form an NSLog() therefore it will not have the @'s
  • ravinder521986
    ravinder521986 over 10 years
    really very helpful for me. thanks