iPhone和模擬器之間的許多差異真的讓人難以置信。我花了幾個小時試圖弄清爲什麼我的應用程序在模擬器上運行,但在我的iPhone設備上崩潰。事實證明,罪魁禍首是sortedArrayUsingDescriptors。有更多的你喜歡這個嗎?請與我分享。墜毀在iphone上,但不是在模擬器上
要在這個問題上和修復與大家分享:
代碼墜毀在iPhone,但不是模擬器
NSSortDescriptor* aDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"count" ascending:NO] autorelease];
NSArray* anNsArray = [[NSArray alloc] init];
NSArray* aSortedNsArray = [[NSArray alloc] init];
aSortedNsArray = [anNsArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:aDescriptor]];
問題是[NSArray arrayWithObject:aDescriptor]
;
該修補程序是創建一個數組來存儲它:
NSArray* descriptorArray = [[NSArray alloc] initWithObjects:countDescrp, nil];
aSortedNsArray = [anNsArray sortedArrayUsingDescriptors:descriptorArray];
韋恩·坎貝爾,CA
同樣:您發佈的代碼對您遇到的崩潰不負任何責任。在你的問題中,你指出'sortedArrayUsingDescriptors'在設備上不能正常工作,這是錯誤的。你的錯誤可能是由於內存管理不好造成的。只是開玩笑,爲'initWithObject:'切換'arrayWithObject:'而不理解正在發生的事情並不是真的有用。我的建議是:閱讀並理解Cocoa內存管理指南:http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html – 2009-11-22 11:04:37