【发布时间】:2017-02-04 18:57:25
【问题描述】:
我有这些代码可以在Tools.m 上打印二维码:
#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。我在这个项目中使用的是没有 ARC 的 Obj C。
【问题讨论】: