我有一个 iOS 应用程序,我转换为支持 Arm64。我最初的转换步骤是:
1) 将目标架构 $(ARCHS_STANDARD_32_BIT) 更改为 $(ARCHS_STANDARD)
2)修复枚举定义:
// before
typedef enum {
MyEnumValue1,
MyEnumValue2
} MyEnum;
// after
typedef NS_ENUM(NSUInteger, MyEnum) {
MyEnumValue1,
MyEnumValue2
}
3)修复不正确的类型stringWithFormat
:
// before
[NSString stringWithFormat:@"The value is %d", someValue];
// after
[NSString stringWithFormat:@"The value is %lu", someValue];
差不多就是这样。我遇到的问题是,在某些视图中,文本现在呈现不正确。呈现文本的视图周围的代码都没有改变,我没有做任何自定义文本绘制。在下面的示例图片中,文本由UIButton
.
UIButton
转换为 Arm64 之前渲染的文本
UIButton
转换为 Arm64 后呈现的文本
我可以从转换前的提交到转换后的提交来回切换并重现这一点。我仔细扫描了差异,没有看到任何明显的影响因素。
问题
- 什么可能导致这种情况?
- 关于如何调试和/或寻找什么的任何想法?
- 更好的是,有人知道为什么会这样吗?