如何在 Xcode 中确定是否针对 64 位 iOS 进行编译

2024-04-07

考虑以下函数

CGSize CGSizeIntegral(CGSize size)
{
    return CGSizeMake(ceilf(size.width), ceilf(size.height));
}

CGSize实际上由两个组成CGFloats, and CGFloat的定义根据架构而变化:

typedef float CGFloat;// 32-bit
typedef double CGFloat;// 64-bit

因此,上面的代码在 64 位系统上是错误的,需要使用类似的内容进行更新

CGSize CGSizeIntegral(CGSize size)
{
#if 64_bit
    return CGSizeMake(ceil(size.width), ceil(size.height));
#else
    return CGSizeMake(ceilf(size.width), ceilf(size.height));
#endif
}

肯定有一个编译器宏/常量(对于 Mac,我们可以使用INTEL_X86例如)但我没能在64 位过渡指南 https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html.

我如何确定正在构建什么架构?


要确定您是否正在编译 64 位,请使用__LP64__:

#if __LP64__
    return CGSizeMake(ceil(size.width), ceil(size.height));
#else
    return CGSizeMake(ceilf(size.width), ceilf(size.height));
#endif

__LP64__代表“长整型和指针是 64 位”并且与体系结构无关。

根据您的转换指南,它也适用于 iOS:

编译器定义了__LP64__编译 64 位时的宏 运行。

但是,处理您的用例的首选方法是使用CGFLOAT_IS_DOUBLE。无法保证__LP64__永远意味着CGFloat是一个双精度,但可以保证CGFLOAT_IS_DOUBLE.

#if CGFLOAT_IS_DOUBLE
    return CGSizeMake(ceil(size.width), ceil(size.height));
#else
    return CGSizeMake(ceilf(size.width), ceilf(size.height));
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xcode 中确定是否针对 64 位 iOS 进行编译 的相关文章

  • 如何在 iPhone 上实现炫酷的警报/信息叠加?

    我了解如何在我的 iPhone 应用程序中包含标准警报 并且可以使用 确定 或 关闭 按钮将其关闭 请参阅图中的示例 如何制作一个很酷的警报 通知覆盖层 就像 foursquare 应用程序中看到的那样 请参阅图片中的 foursquare
  • 检测 UITextField 的焦点变化

    我正在尝试设置当键盘隐藏并出现在文本字段中时视图向上移动的动画 并且它工作得很好 但是当焦点从一个文本字段移动到另一个文本字段时 它不起作用因为键盘已经显示了 在 viewDidLoad 中 我注册了以下内容 NSNotificationC
  • VoiceOver 的 UISlider 可访问性特征?

    使 UISlider 在启用 VoiceOver 的情况下可用所需的正确 UIAccessibility 特征和处理程序是什么 是否有关于用户如何使用启用 VoiceOver 的 UISlider 的描述 以下是我最终添加到 UISlide
  • 向 UIControls 添加属性而不使用子类化

    我已将 UIButtons 嵌入到 TableViewCells 中 为了跟踪按钮属于哪个单元格 我想向 UIButton 添加 NSIndexPath 属性 我不想子类化 UIButton 有没有办法可以通过类别来做到这一点 编辑 我相信
  • 将实体添加到核心数据

    我们有一个使用核心数据的应用程序 在下一个版本中 我想向现有实体添加一个新实体 只需添加新的然后从软件中填充它就可以了吗 还是有什么我必须考虑的事情 迁移有几种类型 最简单的是使用推断映射模型的轻量级迁移 这意味着您只需告诉它进行迁移 软件
  • 适用于 iOS 的最佳存档器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可在我的 iOS 应用程序中使用的存档器库 zip 或其他格式 就以下方面而言 最好的图书
  • 为什么removeAllObservers()在deinit中不起作用?

    众所周知 在 iOS 中使用 Firebase 的强大功能时 每当您在视图控制器中进行观察时 var o DatabaseReference var o2 DatabaseReference var o3 DatabaseReference
  • UIScrollView 滚动时捕捉到位置

    我正在尝试实现一个捕捉到点的滚动视图滚动时 我在这里看到的所有帖子都是关于在用户结束拖动滚动条 之后 捕捉到某个点的 我想让它在拖动过程中折断 到目前为止 我已经用它来停止拖动后的惯性 并且效果很好 func scrollViewWillE
  • Objective-c:如何创建不同深浅的颜色

    是否有任何算法可以为给定的十六进制或 RGB 值创建不同的阴影 我尝试过增加和减少 alpha 但浅色 例如 白色 看起来不太好 实现此目的的最佳方法是使用 HSB 色彩空间 这就是我在最新的应用程序中完成键盘左手部分的方式 颜色的 阴影
  • 如何使用 CocoaPods 正确安装 ReactiveCocoa?

    我很新ReactiveCocoa 我尝试安装ReactiveCocoa几天前通过CocoaPods 这是我的podFile platform ios 7 0 pod ReactiveCocoa 使用后pod install我这里有日志文件
  • iOS7 UITextView设置NSLinkAttributeName属性但无法点击

    interface ViewController
  • AWS ios SDK - 弹性转码器作业的 http post 请求

    查看AWS弹性转码器 有几个问题 对于我的用例来说 首先使用转码器是否具有重要价值 我正在制作一个允许用户选择视频的 ios 应用程序 当他们这样做时 我会将其上传到 S3 存储桶 据我了解 我应该使用弹性转码器对这些视频进行转码 并将它们
  • 在视频录制中,ios 中的 sdk 导航不会录制音频

    我尝试使用 HERE SDK 通过逐向导航来录制视频 当导航未启动时 视频录制工作正常 但当导航正在进行并尝试录制视频时 会出现此错误 avas AVAudioSession mm 1074 AVAudioSession setActive
  • 为什么 UIScrollView 在顶部留有空间并且不滚动到底部

    我是 Objective C 编程新手 我正在使用 UIScrollView 及其上的一些标签 图像和文本视图 我已关闭自动布局 并已尝试打开 调整滚动视图插图 标题中描述的情况 和关闭 不滚动 这是我插入 viewDidLoad 的内容
  • 我可以通过编程方式获取连接到手机的 wifi 的 MAC 地址吗?

    我的手机已连接到 wifi 我想获取我的 wifi 的 MAC 地址 BSSID 和 mac 地址是同一回事 您可以通过此函数获取 mac 地址 只需导入 SystemConfiguration CaptiveNetwork func ge
  • 如何在自定义按钮单击时通过@selector传递数据?

    我正在通过代码制作一个按钮 我有以下代码行来在单击按钮时触发方法 imagesButton addTarget self action selector photoClicked forControlEvents UIControlEven
  • UIModalPresentationFormSheet 的圆角

    如果这是一个明显的问题 请原谅我 我是个相对较新的人 我有一个模态视图 我设置了自定义尺寸和圆角 void viewWillLayoutSubviews super viewWillLayoutSubviews self view supe
  • 如何在 CarPlay 中显示“正在播放”选项卡?

    我正在开发一个支持 CarPlay 的应用程序 这是一个音频应用程序 我可以显示 2 个选项卡 最喜欢的和推荐的 但我只是不知道如何显示 正在播放 选项卡 我只是找不到任何有关此的信息 我是否必须手动显示它 以及如何推送 我必须手动完成吗
  • 如何使用 Codable 解析此 JSON?

    我一直在尝试从我的中解析这个对象JSON并不断收到此错误 错误 类型不匹配 Swift Array Swift DecodingError Context codingPath debugDescription 本应解码数组 但找到了字典
  • iOS UITest:如何找到UITableViewCell的AccessoryView?

    你好我正在学习UITests now 我有个问题 如何检测accessoryView的点击tableViewCell 在UI测试中 下面是我的tableViewCell 我想要检测细节闭合配件视图水龙头 像这样 app tables cel

随机推荐