2014-08-28 67 views
1

我已經使用下面的代碼將NSArray轉換爲NSString假設我有一個包含一些數據的數組。ReConvert NSString到NSArray

NSString *sample=[array description]; 
NSLog(@"%@",sample); 

它打印:

(
    { 
    URL = "1a516af1a1c6020260a876231955e576202bbe03.jpg##37911944cc1ea8fd132ee9421a7b3af326afcc19.jpg"; 
    userId = 0; 
    wallpaperId = 31; 
    }, 
    { 
    URL = "a9356863fa43bc3439487198283321622f88e31f.jpg##f09c743ebdc26bb9f98655310a0529b65a472428.jpg"; 
    userId = 0; 
    wallpaperId = 30; 
    } 
) 

它看起來像數組,但它實際上是一個字符串。 現在我想知道,我怎麼能恢復到NSArray? 幫助讚賞。

並請這不是一個重複的問題,我找不到相同的任何地方。

+4

你需要明確一個'NSString'分離組件的陣列?因爲如果目的是序列化數組的內容以便能夠稍後反序列化,那麼使用'NSKeyedArchiver' /'NSKeyedUnarchiver'可能是更好的解決方案。檢查這個答案http://stackoverflow.com/questions/7743450/what-is-the-best-way-to-save-an-nsmutablearray-to-nsuserdefaults – Jack 2014-08-28 12:45:06

+3

通常,「說明」是不可逆的。使用存檔器進行序列化,並使用un-archiver進行反序列化。 – dasblinkenlight 2014-08-28 12:45:08

+1

是的,使用JSON或存檔的東西。除了調試消息之外,不要使用'description'。 – 2014-08-28 12:48:42

回答

5

您不能依賴description的結果,因爲它不是轉換爲字符串運算符,而只是一個調試幫助。沒有什麼可以阻止它在O/S版本之間進行更改,並且沒有等效的fromDescription方法。

將Objective-C集合與字符串序列化的常規方法是使用JSON,因此請查看NSJSONSerialization類。

+0

我想知道我是否應該這樣做,但我認爲它是一個好主意,將數組轉換爲JSON,然後很容易將其轉換回數組。 +1 – pankaj 2014-08-28 13:00:14