簡體   English   中英

如何將NSString轉換為NSArray?

[英]How to convert an NSString to an NSArray?

我有一個NSString ,當我NSLog ,它看起來像這樣:

(
    Music,
    Music,
    "Ao Dai Fashion Show"
)

我想將其轉換為NSArray,其中array [0] =音樂,array [1] =音樂,array [2] =奧黛時裝秀。

我嘗試使用以下方法先刪除():

NSString *jsonString = [str stringByReplacingOccurrencesOfString:@"()" withString:@""];

但是,我收到一個unrecognized selector sent to instance

我該如何實現?

謝謝

這是原始數組:

NSArray *oriArray = [dictionary objectForKey:someKey];

NSLog

(
        {
        "end_time" = "21:00";
        "english_event" = Music;
        "english_performer" = "DJ Happee From Channel 93.3";
        "start_time" = "20:00";
    },
        {
        "end_time" = "21:00";
        "english_event" = Music;
        "english_performer" = "Adam Cease";
        "start_time" = "20:00";
    },
        {
        "end_time" = "21:00";
        "english_event" = "Ao Dai Fashion Show";
        "english_performer" = "";
        "start_time" = "20:00";
    }
)

這是獲取包含內容Music, Music, "Ao Dai Fashion"的新NSArray的代碼:

NSArray *newArry = [oriArray valueForKey:@"english_event"];

但是,當我嘗試訪問其索引時, newArry給我一個錯誤。

我認為您記錄的實際上不是NSString 請檢查其類型,因為它似乎已經是NSArray的實例。 因此,您應該已經能夠做您想做的事。

-(void)parse:(NSDictionary *)dictionary {

NSArray *oriArray = [dictionary objectForKey:someKey];
NSMutableArray *arrray=[[NSMutableArray alloc] init];
for (NSDictionary *dic in oriArray)
{
    [arrray addObject:[dic objectForKey:@"english_event"]];

}

}

使用它可能會幫助您。

抱歉,我沒什么好評論的,我只是想問一下,您嘗試過嗎?NSArray * myArray = [stringOi componentsSeparatedByString:@“,”]; (* stringOi是您的str),我嘗試使用以下示例,但此方法可行,請嘗試使用您的示例。

NSString * stringOi = [NSString stringWithFormat:@“(音樂,音樂,“奧黛時裝秀”)”]; NSLog(@“%@”,stringOi);

NSString *jsonString = [stringOi stringByReplacingOccurrencesOfString:@")" withString:@""];

NSString *jsonStringFinal = [jsonString stringByReplacingOccurrencesOfString:@"(" withString:@""];

NSLog(@"%@", jsonStringFinal);

NSArray *myArray = [jsonStringFinal componentsSeparatedByString:@","];
NSArray *myArray1 = [myArray objectAtIndex:0];
NSLog(@"%@",myArray1);
NSArray *myArray2 = [myArray objectAtIndex:1];
NSLog(@"%@",myArray2);
NSArray *myArray3 = [myArray objectAtIndex:2];
NSLog(@"%@",myArray3);

另外,也可以代替oriArray來獲取字典字典中的值,然后,

NSArray * myArray1 = [dict objectForKey:@“ english_event”]; NSString * Music = [myArray1 objectAtIndex:0];

希望最好的..!

兩件事情:

  1. NSArray *myArray = [myDictionary objectForKey:@"Valid Key"]並不意味着myArray實際上是一個數組。 這只是意味着它是指向已轉換為NSArray的對象的指針。

  2. 您可以使用[myDictionaryOrArray description]將任何NSArrayNSDictionary轉換為字符串。

如果您不關心采取額外的步驟,並且知道在注銷數組時可以得到想要/期望的結果,那么您絕對可以將字符串放入數組中。 例如:

NSString *myString = [@[Music, Music, "Ao Dai Fashion Show"] description];
NSMutableArray *stringAsArray =  [NSMutableArray arrayWithArray:[myString componentsSeparatedByString:@","]];
// this loop removes the white space before and after each word in the array
for (int i = 0; i < stringAsArray.count; i++) {
    stringAsArray[i] = [stringAsArray[i] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

如果您需要更長的樣本更具體的代碼,我們將很樂意更新我的答案。

(
    Music,
    Music,
    "Ao Dai Fashion Show"
)

這是一個數組而不是字符串

此數組在每個索引中包含三個字符串,音樂,音樂,奧黛時裝秀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM