gpt4 book ai didi

iphone - NSURL URLWithString : raises exception

转载 作者:太空狗 更新时间:2023-10-30 03:53:03 29 4
gpt4 key购买 nike

简而言之,[NSURL URLWithString:] 似乎引发了异常。根据文档“如果字符串格式错误,则返回 nil”。没有提到在任何情况下都会引发异常。除此之外,在将字符串转换为 URL 之前,我对 URL 进行了编码并检查了 nil

任何人都可以就可能是哪种异常或在转换 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 捕获代码并查看发生了什么。遇到问题的用户从未直接联系过我,所以我无法询问更多详细信息。非常感谢任何建议。

更新(2009 年 7 月 14 日):看起来像这样的 hack,但我在可疑行周围添加了一个异常 block 。我还提出了一个 Radar 错误报告 (#7031551),建议代码应该与文档相匹配。

最佳答案

我遇到过一些 API 抛出文档不应该抛出的异常的情况。我的建议是确保(在您的实际代码中)tmpText 确实不是 nil(在这种情况下会抛出异常,因为大多数期望 NSStrings 的 api 不是 nil 保存在那里)。之后,只需围绕它添加异常处理并向 bugreporter.apple.com 提交错误报告。

关于iphone - NSURL URLWithString : raises exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875160/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com