2016-11-03 3 views
1
let detector:CIDetector=CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy:CIDetectorAccuracyHigh])! 

Он отлично работает в устройстве, но при создании построить для распределения ITUNES дает ошибку:CIDetectorTypeQRCode дает ошибку

"Value of type '[String:AnyObject]?" has no member 'Key'

Если удалить опционная деталь

[CIDetectorAccuracy:CIDetectorAccuracyHigh] 

то это дает ошибку, как :

(ofType: String, context: CIContext?, options: [String : AnyObject]?) -> CIDetector' is not convertible to '(ofType: String, context: CIContext?, options: [String : AnyObject]?) -> CIDetector?'

У кого-нибудь есть идея об этом?

Я использую Swift 2.3 и Xcode 8.1.

ответ

3

я получил тот же вопрос в Swift 3 и XCode 8.1

Ниже мое решение. Изменение CIDetector (...) в CIDetector.init (...)

let detector: CIDetector? = CIDetector.init(ofType:CIDetectorTypeQRCode, context:nil, options:[CIDetectorAccuracy: CIDetectorAccuracyHigh])

+0

Это также работает для меня, что я не понимаю вообще ... –

+0

Очень интересный трюк, и это действительно решить мою проблему тоже. – bubuxu

-1

Привет У меня тоже есть такая же проблема. Я много пробовал, но проблема не была решена. Позже я обнаружил, что компилятор или быстрый синтаксис создают проблему. Итак, созданный новый объективный c-файл, добавлен объектный код, и он сработал. Итак, попробуйте с объективным c-файлом. Это действительно сработало для меня.

-(NSString *)getQRCodeStringFromImage:(UIImage *)QRcodeimage { 

    NSDictionary *detectorOptions = @{@"CIDetectorAccuracy": @"CIDetectorAccuracyHigh"}; 
    CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:detectorOptions]; 
    CIImage *ciImage = [[CIImage alloc] initWithImage:QRcodeimage]; 

    if (detector) { 

     NSArray* featuresR = [detector featuresInImage:ciImage]; 
     NSString* decodeR; 

     for (CIQRCodeFeature* featureR in featuresR) { 
      decodeR = featureR.messageString; 
     } 
     NSLog(@"QRCode String : %@" , decodeR); 

     return decodeR; 
    } 
    return nil; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^