Objective c 在Mac上使用ZXingObjC创建二维条码
我正在尝试使用在我的Mac应用程序上创建二维码 它适用于所有条形码类型,但QRcode返回零!“结果”和“错误”均为空。这是我的密码:Objective c 在Mac上使用ZXingObjC创建二维条码,objective-c,macos,cocoa,qr-code,Objective C,Macos,Cocoa,Qr Code,我正在尝试使用在我的Mac应用程序上创建二维码 它适用于所有条形码类型,但QRcode返回零!“结果”和“错误”均为空。这是我的密码: NSError* error = nil; ZXMultiFormatWriter* writer = [[ZXMultiFormatWriter alloc] init]; ZXBitMatrix* result = [writer encode:@"1234567890123456789012345678901234567890123456789012345
NSError* error = nil;
ZXMultiFormatWriter* writer = [[ZXMultiFormatWriter alloc] init];
ZXBitMatrix* result = [writer encode:@"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"
format:kBarcodeFormatQRCode
width:1750
height:1750 hints:[[ZXEncodeHints alloc] init] error:&error];
if (result) {
CGImageRef image = [[ZXImage imageWithMatrix:result] cgimage];
self.image.image = [[NSImage alloc] initWithCGImage:image size:NSMakeSize(1750, 1750)];
} else {
NSLog(@"error: %@", error);
}
有什么问题吗?尝试使用另一种方法,而不是使用提示,只使用:
[编写器编码:@“yourmeganumber”格式:kbarcodeformatqcode宽度:xxxx高度:xxxx错误:&错误]代码>
这对我有用
试着让我知道我有同样的问题。这里是解决这个问题的方法
打开文件ZXingObjC\qrcode\encoder\ZXEncoder.m
查找此行:int minpaul=NSIntegerMax代码>。必须有一个警告:从“long”到“int”的隐式转换将9223372036854775807更改为-1。这就是问题的原因NSIntegerMax
在我的64位Mac电脑上返回9223372036854775807
,并且minpault
获取-1
值(因为int
类型无法存储这么大的数字)
将NSIntegerMax
替换为INT\u MAX
。它应该返回正确的值:2147483647
。根据对的回答,这是32位机器上返回的数字NSIntegerMax
运行应用程序,您将获得二维码
你能将二维码拆分成一个示例Mac应用程序来显示这个问题吗?项目中的示例应用程序是iOS应用程序,适用于我。当然,Peter,iOS示例适用于我,但在mac上,它不会创建条形码!我将创建一个示例项目,并将其发布到这里来测试。是什么导致这些方法中的一个工作,而另一个失败?谢谢Daniel,我已经尝试了一个没有提示的方法,同样的结果!结果和误差均为零