Просматривая форумы, я обнаружил, что эта проблема время от времени всплывает. И, по-видимому, делает это в широком спектре различных случаев. Ни один из тех, что мне удалось найти, не похож на мой.
Я на полпути к своей программе (уроку) по созданию полезного приложения для твиттера. Тестирование в настоящее время запускает программу как надо, без каких-либо ошибок. Но когда я выбираю учетную запись, программа вылетает и появляется сообщение об ошибке в методе изображения, который должен загрузить аватар выбранного пользователя. Я предполагаю, что он вообще не может получить действительное изображение или данные (из-за строки ImageData = (NSDATA?) nil в области отладки), но я ни в коем случае не уверен ни в чем, не говоря уже о том, как или где найти решение. Если я ищу с неправильными ключевыми словами, пожалуйста, дайте мне знать. (Я ищу ошибку exc_bad_instruction и uiimage) Заранее спасибо.
Ниже я опубликую фрагмент кода, в котором проявляется проблема, и то, что показано в области отладки ниже.
if let cachedImage = image {
cell.tweetUserAvatar.image = cachedImage
}
else {
cell.tweetUserAvatar.image = UIImage(named: "camera.png")
queue?.addOperationWithBlock() {
let imageURL = NSURL(string: imageURLString) as NSURL!
let imageData = NSData(contentsOfURL: imageURL) as NSData?
let image = UIImage(data: imageData!) as UIImage? // EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subode=0x0)
if let downloadedImage = image {
NSOperationQueue.mainQueue().addOperationWithBlock(){
let cell = tableView.cellForRowAtIndexPath(indexPath) as! TweetCell
cell.tweetUserAvatar.image = downloadedImage
}
self.imageCache?.setObject(downloadedImage, forKey: imageURLString)
}
}
}
Область отладки:
imageURLString String
"http://pbs.twimg.com/profile_images/465756113825067008/8jH2nZO0_normal.png"
tableView UITableView 0x00007fc52481b400
indexPath NSIndexPath * 0xc000000000000016
self Chapter7_8___Social_App.FeedViewController 0x00007fc5235f5ef0
imageURL NSURL! "http://pbs.twimg.com/profile_images/465756113825067008/8jH2nZO0_normal.png"
imageData NSData? nil None
image UIImage? 0x000000010ee778dd
downloadedImage UIImage