当 url 不是图像时,AlamoFireImage 类型为 NSException 的未捕获异常
uncaught exception of type NSException with AlamoFireImage when url isn't an image
我正在使用 AlamofireImage 在 UITableViewCell 中显示图像
typealias boolAndAnyCompletion = (_ success: Bool, _ value: Any?) -> Void
class ImageHelper {
func fetchImage(url:String, completion: @escaping boolAndAnyCompletion) {
Alamofire.request(url).responseImage { response in
if let image = response.result.value {
completion(true, image)
} else {
completion(false, "No image")
}
}
}
}
这大部分工作正常。我正在从 JSON 对象获取 url 并尝试在 url 处获取图像。大多数情况下这工作正常并且 returns 图像如预期的那样或者如果 url 字符串为 404 或其他无效则失败。
然而今天我的应用开始崩溃
libc++abi.dylib: terminating with uncaught exception of type NSException
我将其缩小到上述方法,其中我的 JSON 响应给我一个 url 错误,它没有指向图像。
if 如果我得到的 url 图像是“https://bbc.co.uk/news/" that that causes the crash. However if I search for an image at "https://www.google.co.uk/maps/”,它按预期失败但没有崩溃并通过错误处理进行处理。
我知道最好的解决方案是只将正确的图像 url 放入 JSON 中,但在与人打交道时可能会发生错误。那么,是否有一个原因 'fail correctly' 而另一个使我的应用程序崩溃?如何防止在某些无效的 url 上发生崩溃?
我找到了我的问题的解决方案,我没有感到惊讶,因为问题不在上面。我查看了之前的答案here并设置了异常断点。
我的应用程序也在使用 Realm(起初看起来并不相关)。我用来自 Realm 的数据填充 UITableViewCell。然后我下载了 JSON 并创建了新对象并删除了旧领域的对象。
然后异常断点停止在
@throw RLMException(@"Object has been deleted or invalidated.")
在椰子中。当我在领域中保存字符串或 url 而不是 url 时,我猜测单元格开始下载,然后无效并假设这就是导致崩溃的原因。
我正在使用 AlamofireImage 在 UITableViewCell 中显示图像
typealias boolAndAnyCompletion = (_ success: Bool, _ value: Any?) -> Void
class ImageHelper {
func fetchImage(url:String, completion: @escaping boolAndAnyCompletion) {
Alamofire.request(url).responseImage { response in
if let image = response.result.value {
completion(true, image)
} else {
completion(false, "No image")
}
}
}
}
这大部分工作正常。我正在从 JSON 对象获取 url 并尝试在 url 处获取图像。大多数情况下这工作正常并且 returns 图像如预期的那样或者如果 url 字符串为 404 或其他无效则失败。
然而今天我的应用开始崩溃
libc++abi.dylib: terminating with uncaught exception of type NSException
我将其缩小到上述方法,其中我的 JSON 响应给我一个 url 错误,它没有指向图像。
if 如果我得到的 url 图像是“https://bbc.co.uk/news/" that that causes the crash. However if I search for an image at "https://www.google.co.uk/maps/”,它按预期失败但没有崩溃并通过错误处理进行处理。
我知道最好的解决方案是只将正确的图像 url 放入 JSON 中,但在与人打交道时可能会发生错误。那么,是否有一个原因 'fail correctly' 而另一个使我的应用程序崩溃?如何防止在某些无效的 url 上发生崩溃?
我找到了我的问题的解决方案,我没有感到惊讶,因为问题不在上面。我查看了之前的答案here并设置了异常断点。
我的应用程序也在使用 Realm(起初看起来并不相关)。我用来自 Realm 的数据填充 UITableViewCell。然后我下载了 JSON 并创建了新对象并删除了旧领域的对象。
然后异常断点停止在
@throw RLMException(@"Object has been deleted or invalidated.")
在椰子中。当我在领域中保存字符串或 url 而不是 url 时,我猜测单元格开始下载,然后无效并假设这就是导致崩溃的原因。