2012-05-28 78 views
2

這就是返回錯誤__strong:「神聖的運行上的表達,蝙蝠俠」初始化NSMutableArray的不兼容的類型的空

NSMutableArray *newArray = [[[NSMutableArray alloc] initWithArray:[NSJSONSerialization JSONObjectWithData:[[[appDelegate.Matches objectAtIndex:(NSUInteger)indexPath] objectForKey:@"chat"] dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil]] addObject:[NSDictionary dictionaryWithObjectsAndKeys:message, @"message", [NSString stringWithFormat:@"%llu", appDelegate.userId], @"id", nil]]; 
+6

你真的應該減少這條線的長度。如果需要使用額外的變量 - 有助於可讀性。 – Anurag

+3

不僅可讀性好,而且調試。您實際上可以看到您在此調用的〜10種方法中的哪一個是罪魁禍首 – Sean

+3

第21屆國際混淆C代碼競賽即將到來...... http://www.ioccc.org/。你真的應該考慮進入。 –

回答

11

如果你想將它分成多行,你可以很容易地看到問題出在哪裏。

或者更可能的是,這個錯誤會神祕地消失。

問題是addObject:返回(void),但您試圖將該方法的返回值分配給該變量。

+4

+1爲「神聖的跑動表情,蝙蝠俠!」...哦,答案;) –

+0

爲了簡化代碼,它是不是很糟糕,使運行表達式是它? – michaela

+1

你的問題確切地說明了它爲什麼不好;它隱藏了錯誤並使代碼更難以調試。例如,如何在調試器中逐步完成並查看執行'[appDelegate.Matches objectAtIndex:(NSUInteger)indexPath]'表達式的結果? – bbum

相關問題