Objective c 在Mac上使用ZXingObjC创建二维条码

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

我正在尝试使用在我的Mac应用程序上创建二维码

它适用于所有条形码类型,但QRcode返回零!“结果”和“错误”均为空。这是我的密码:

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,我已经尝试了一个没有提示的方法,同样的结果!结果和误差均为零