Я генерирую QR-код для ввода в UIImage. Я запускаю функцию генерации асинхронно, но по какой-то причине приложение вылетает, когда я запускаю его на своем телефоне, но не сбой в симуляторе. Я не совсем уверен, что происходит ... Любые идеи?Асинхронная функция, вызывающая сбой
Настройка изображения
let QR = UIImageView()
dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)) { // 1
var img = self.generateQRImage(self.arr[sender.tag],withSizeRate: self.screenWidth-40)
dispatch_async(dispatch_get_main_queue()) { // 2
QR.image = img
}
}
QR.frame = CGRectMake(0,0,screenWidth-40,screenWidth-40)
QR.center = CGPoint(x:screenWidth/2,y:screenHeight/2)
sView.addSubview(QR)
Генерация QR
func generateQRImage(stringQR:NSString, withSizeRate rate:CGFloat) -> UIImage
{
var filter:CIFilter = CIFilter(name:"CIQRCodeGenerator")
filter.setDefaults()
var data:NSData = stringQR.dataUsingEncoding(NSUTF8StringEncoding)!
filter.setValue(data, forKey: "inputMessage")
var outputImg:CIImage = filter.outputImage
var context:CIContext = CIContext(options: nil)
var cgimg:CGImageRef = context.createCGImage(outputImg, fromRect: outputImg.extent())
var img:UIImage = UIImage(CGImage: cgimg, scale: 1.0, orientation: UIImageOrientation.Up)!
var width = img.size.width * rate
var height = img.size.height * rate
UIGraphicsBeginImageContext(CGSizeMake(width, height))
var cgContxt:CGContextRef = UIGraphicsGetCurrentContext()
CGContextSetInterpolationQuality(cgContxt, kCGInterpolationNone)
img.drawInRect(CGRectMake(0, 0, width, height))
img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img
}
, что сообщение об ошибке сказать и то, что стек трассировки шоу? – Icaro
2015-05-24 18: 37: 41.084 Klikr [279: 8851] BSXPCMessage получил сообщение об ошибке: Прерывание соединения 2015-05-24 18: 37: 49.401 Klikr [279: 8851] Прекращение действия, так как нет системного приложения. – SpaceShroomies
Посмотрите в этом посте он может ответить на ваш вопрос http://stackoverflow.com/questions/26065808/bsxpcmessage-received-error-for-message-connection-interrupted – Icaro