У меня есть эти код для печати QRCode на Tools.m
:Неопределенные символы CIFilter даже если я включил CoreImage.h
#import <CoreImage/CoreImage.h>
...
+ (UIImage *)renderQRCodeFrom:(NSString *)source withImageViewFrameSize:(CGSize)imageViewFrameSize {
NSString *qrString = source;
NSData *stringData = [qrString dataUsingEncoding: NSUTF8StringEncoding];
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[qrFilter setValue:stringData forKey:@"inputMessage"];
[qrFilter setValue:@"H" forKey:@"inputCorrectionLevel"];
CIImage *qrImage = qrFilter.outputImage;
float scaleX = imageViewFrameSize.width/qrImage.extent.size.width;
float scaleY = imageViewFrameSize.height/qrImage.extent.size.height;
qrImage = [qrImage imageByApplyingTransform:CGAffineTransformMakeScale(scaleX, scaleY)];
return [UIImage imageWithCIImage:qrImage scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
}
Но когда я компилирую его, он показывает ошибку:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_CIFilter", referenced from:
objc-class-ref in Tools.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Почему эта ошибка происходит? Я правильно включил CoreImage.h
, и, насколько я знаю, я не могу найти подобную ошибку в Интернете, что означает, что эта ошибка необычна. Я могу CMD + щелкнуть CIFilter, хотя, и это приводит к CoreImage/CIFilter.h
.
NS_CLASS_AVAILABLE(10_4, 5_0)
@interface CIFilter : NSObject <NSSecureCoding, NSCopying>
{
void *_priv[8];
}
...
Цель моего развертывания моего проекта установлена на iOS 8.0. Я использую Obj C без ARC в этом проекте.