Tag: arm64

– 带有double值的意外地产生0

我想调用一个方法,返回一个使用NSInvocation的double NSInvocation 。 但我发现它不适用于64位iOS应用程序。 它适用于OS X,模拟器(包括32位和64位),iPad 2和iPad Air(32位版本)。 只有iPad Air设备上的64位版本具有此问题。 这是演示问题的代码: NSMethodSignature *signature = [NSString instanceMethodSignatureForSelector:@selector(doubleValue)]; for (int i = 0; i < 10; i++) { NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; NSString *str = [NSString stringWithFormat:@"%d", i]; [invocation setTarget:str]; [invocation setSelector:@selector(doubleValue)]; [invocation invoke]; union { double d; uint64_t u; } d; [invocation getReturnValue:&d.d]; NSLog(@"%lf, %llx", […]

确定设备是否是ARM64

我试图做一个iOS 7的调整,以便当一个设备是ARM64它运行一个版本,当它不是它运行另一个(因为浮动为32位和双为64(如果你有一个解决scheme让我知道。) 所以会是这样的 if ARM64 { \\run double code } else { \\run float code }

asm(“陷阱”)在64位iOS设备上

在我自己创build的assertmacros中,我一直在iOS设备上使用asm(“trap”)(或者在iOS模拟器上使用asm(“int3”))来debugging。 但是,在64位版本的设备中,我得到了陷阱指令的“无法识别的指令助记符”。 有没有相当于arm64? (像__builtin_trap()或raise(SIGINT)这样的替代方法可以工作,但有一些我不喜欢的行为;前者不会让你继续过去,而后者是一个函数,所以你总是低于当你破碎的时候你需要在堆栈中)

上传到iTunes连接时,为什么会出现64位缺失的支持?

我尝试通过Application Loader上传文件。 但是我从iTunes商店收到邮件。 缺less64位支持 – 从2015年2月1日开始,提交给App Store的新iOS应用程序必须包含64位支持,并使用iOS 8 SDK构build。 从2015年6月1日开始,应用更新也需要遵循相同的要求。 要在您的项目中启用64位,我们build议使用“标准体系结构”的默认Xcode构build设置来构build一个具有32位和64位代码的单个二进制文件。 但是我已经在Xcode中添加了如下图所示的arm64。 上传到iTunes连接时,为什么会出现64位缺失的支持? 我错过了什么吗?

asm中的未知寄存器名称“q0”(arm64)

我目前正在试图编译我的lib为新的arm64拱。 我有一堆NEON程序集,并为他们所有人收到一个错误 asm中的未知寄存器名称“q0”。 即使我这样写简单: asm ( "" : : : "q0", "q1", "q2", "q3" ); 我以为arm64支持NEON。 我错过了什么?

parsingAPI 1.6.4 – 不能build立项目

我下载了新的iOS Parse API(1.6.4)并试图构build我的项目。 当我这样做,我得到这个错误: Undefined symbols for architecture arm64" "_BFTaskMultipleExceptionsException", referenced from: ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o) ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 截图:

如何更新我们的支持arm64 Build的静态库架构?

几天前我创build了静态库(通用) ,与Xcode5.0 SDK7工作正常。 使用SDK7.1更新Xcode5.1后,如果我select模拟器iPhone Retina(4-inch 64-bit)不起作用。 然后,我要更新我的库与波纹pipe设置更改。 我为三个目标做同样的事情: 对于体育模拟器以及设备,我把通用库,并在此我运行脚本: – 在此之后,我再次构build库和使用,因为我以前在我的项目。 但iPhone Retina(4-inch 64-bit) Undefined symbols for architecture x86_64:依然存在同样的问题Undefined symbols for architecture x86_64: 所以,我的问题是,是否有任何额外的更新需要更新lib的arm64或我在上面的步骤中的任何错误。 如果我错了,请通知我。 更新我的静态库,以支持64Bit architecture需要什么样的更改 注意: 我要求我自己创build的库更新。 我不使用第三方库。 更新 我用这个lipo -info testingLibImport/libLibNSlog.a命令到我的terminal输出是: Architectures in the fat file: testingLibImport/libLibNSlog.a are: armv7 armv7s i386 arm64

构buildarmv7,armv7s,arm64,i386和universal的ffmpeg iOS库

我已经看到几个脚本来构buildarmv7,7s和i386的FFmpeg API,但是找不到任何可以用于armv64的东西。 在这个论坛的其他线程上的一些答案build议为arm64准备一个单独的库,但是对于其余的体系结构不能很好地工作。 因此,我需要一个脚本,可以适用于所有支持的iOS架构,包括armv7,armv7s,armv64和i386。

NSInteger和NSUInteger在混合的64位/ 32位环境中

我在NSLog / NSAssert等调用中有相当数量的string格式说明符,它们分别使用NSInteger (= int on 32bit)和NSInteger (= int on 32bit) NSUInteger (= unsigned int on 32bit) NSInteger (= int on 32bit) %d和%u 。 当将应用程序转换为64位时,会给出警告(当然),因为%ld %lu对于现在变成long unsigned long和unsigned longtypes是预期的。 简单地转换格式说明符当然会在32位版本中引入反向警告。 所以唯一的解决办法就是使用64位的说明符,而在64位的数据types中,每个地方都会有32位的警告。 但我想知道是否有格式说明符专门为NSInteger和NSUIntegertypes,这将在两个架构上工作,而不铸造?