2014-03-25 49 views
0

我有一個功能,看起來像這樣:NSJSONSerialization在我的函數返回一個錯誤

[0]動畫* 0x8d5e100 0x08d5e100

-(void)writeArrayOnFile { 

    NSArray* converterArray = [[NSArray alloc] initWithArray:[self swContainer]]; 

    NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
    url = [url URLByAppendingPathComponent:@"saved.json"]; 
    NSError *e = nil; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:converterArray options:0 error:&e]; 

    if (jsonData) { 
     [jsonData writeToFile:url.path atomically:YES]; 
    } 

    NSLog(@"%@", jsonData); 

} 

在斷點時,converterArray與正確的對象進來 NSObject的NSObject的
_swBtnValue BOOL YES

_thSmallLink的UIImage * 0x8fdcd80 0x08fdcd80

_thLargeLink __NSCFString * @ 「http://content9.flixster.com/movie/11/17/45/11174563_ori.jpg 」0x08fb9530

_mvName __NSCFString * @「 送貨人」 0x08fc48e0

_dvdReleaseDate __NSCFString * @ 「2014年3月25日」 0x08fb49a0

_mvRating __NSCFString * @」 PG-13「0x08fc4920

_mvSyn __NSCFString * @」來自夢工廠的影片「送貨人」,親切的未成年人大衛·沃茲尼亞克的故事,當他發現他的世俗生活顛倒了,通過他二十年前提出的精子捐獻,他培養了533名兒童。對於被懷孕的女朋友拒絕的暴民債務,大衛在533名二十五歲的人中有142人想要知道捐助者的身份時,遭遇了一場官司。當大衛努力決定是否應該透露自己的真實身份時,他開始了一段旅程,導致他不僅發現了他的真實自我,而且還發現了他可能成爲的父親。 (c)中迪斯尼」 0x08fadd00

[1]短片* 0x8fda800 0x08fda800

[2]短片* 0x8d68720 0x08d68720

但在斷點產生 「將writeToFile」 方法(從jsonData對象)返回這個:由於未捕獲異常'NSInvalidArgumentException'而終止應用程序,原因:'JSON寫入中的無效類型(Movie)

是因爲UIImage的值嗎?我沒有看到?非常感謝。

回答

3

是的,這是因爲UIImageNSJSONSerialization僅適用於NSString,NSNumber,NSArray,NSDictionaryNSNull。有關完整的詳細信息,請參閱NSJSONSerialization文檔。

如果要包含圖像,必須首先將其轉換爲NSData,可能使用UIImagePNGRepresentationUIImageJPEGRepresentation

+0

謝謝你湯姆 – Nactus

相關問題