簡而言之,[NSURL URLWithString:]
似乎引發異常。根據文件「如果字符串格式不正確,返回零」。沒有提到在任何情況下引發的例外情況。除此之外,我將URL編碼並在將字符串轉換爲URL之前檢查nil
。NSURL URLWithString:引發異常
任何人都可以提供任何意見,可能是哪個異常,或者在轉換URL之前應該做什麼其他錯誤檢查?
如果你感興趣的細節,調用代碼看起來是這樣的:
NSString* tmpText = [newUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
if (tmpText == nil) {
// error handling
}
else {
NSURL* tmpURL = [NSURL URLWithString:tmpText];
這是從iTunes Connect中的崩潰報告下載一節:
8 libobjc.A.dylib 0x300c1f84 objc_exception_throw
9 CoreFoundation 0x3029a598 +[NSException raise:format:arguments:]
10 CoreFoundation 0x3029a538 +[NSException raise:format:]
11 Foundation 0x30696dde -[NSURL initWithString:relativeToURL:]
12 Foundation 0x30696cd8 +[NSURL URLWithString:relativeToURL:]
13 Foundation 0x30696cae +[NSURL URLWithString:]
14 Yummy 0x000146ca -[DeliciousPostCell setUrl:] + 46
它似乎該URL在某種程度上是「壞」的格式,但這應該是真的返回nil
不是一個例外。
我從來沒有見過異常被提出自己,所以我不能使用XCode來捕獲代碼,看看發生了什麼。並且遇到問題的用戶從未直接與我聯繫,所以我不能要求更多詳細信息。任何建議不勝感激。
更新(14/7/2009):看起來像這樣的黑客攻擊,但我在疑犯線周圍添加了一個異常塊。我還提出了雷達錯誤報告(#7031551),建議代碼應該與文檔匹配。
斯蒂芬,你有沒有找到任何特定的字符串造成這種情況? –
@MikeAbdullah恐怕不是。 '@ try'模塊起作用了,所以我沒有看到崩潰,並且應用程序沒有「打電話回家」。蘋果在iOS 5 beta 2發佈時關閉了雷達,因此它可能會被修復... –