我找不出爲什麼這個代碼是壞的。我認爲可以在dictionaryWithObjectsAndKeys中使用靜態字符串,但在運行時使用EXC_BAD_ACCESS失敗。我使用調試器來確定它實際上在定義線上失敗。它從來沒有輸出「在這裏製造」。NSDictionary初始化結果「EXC_BAD_ACCESS」
- (NSString *)polyName:(NSUInteger)vertices {
NSLog(@"looking for polyName with %d vertices.", vertices);
NSDictionary *polNameDict = [NSDictionary dictionaryWithObjectsAndKeys:
@"triangle", @"3",
@"square", @"4",
@"pentagon","5",
@"Hexagon", @"6",
@"Heptagon", @"7",
@"Octagon", @"8",
@"Nonagon", @"9",
@"Decagon", @"10",
@"Hendecagon", @"11",
@"Dodecagon", @"12",
nil];
NSLog(@"Made it here");
NSString *key = [NSString stringWithFormat: @"%d", vertices];
NSString *polName = [polNameDict objectForKey:key];
return (polName);
// Memory management: No need to release polNameDict, key, polName because they use
// convenience functions
}
首先修復'@ 「五邊形」, 「5」''到@ 「五邊形」,@ 「5」'。 – Anna
@安娜 - 應該作爲回答,因爲它似乎實際上是問題 –
安娜我愛你。 OMG,我浪費了一個小時。 ARRRGGH。愚蠢的錯字。謝謝。這個社區以btw爲基礎。 – vesselhead