1、NSDecimalNumber转基础数据类型时选择 double 比 float 更精确
2、一个奇怪的 Duplicate interface definition for class 错误
完成以下措施后依然无效: 1、Xcode完全退出后重新打开 2、清理缓存 Xcode 缓存目录: /Users/你的用户名/Library/Developer/Xcode/DerivedData**
3、电脑关机重启 4、测试手机关机重启 5、删除文件后再次导入 都无法解决这个报错,关键是我无法找到 重复的文件,我怀疑是 Xcode的问题,最后无奈使用另一个 Target 中的同名文件,新 Target中不再导入了。
3、使用第三方SDK的一次报错:not found for architecture arm64
解决方案: 1、CAudioEngine 报错是因为 Compile Sources 中导入了一个工程中没有对应静态库支持支持的 .m文件,删除即可。 2、下面的报错是因为Build setting 中的 Enable Testability 在Debug时默认是开启的,设为No 即可。
4、Xcode 10升级报错
报错原因是libstdc 、libstdc .6、libstdc 6.0.9这三个内库在Xcode 10 已经禁用这三个库!!!,所以只需要下载下来放进去就OK了。
1.下载 libstdc .6.0.9.tbd
下载地址:https://pan.baidu.com/s/1eTXIp032IKhfpdKqhn3u0g
2.下载下来注意文件名可能不是这个更改文件名为libstdc .6.0.9.tbd
如果已经是这个名字的就不需要再改了!
3.将下载文件放到指定位置即可!
(1)真机运行库位置
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
(2)模拟器运行库位置
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
第二种方式 解决Xcode10 library not found for -lstdc 找不到问题 参考地址
代码语言:javascript复制cd /Users/iOS002/Downloads/libstdc--master
sudo sh install.sh
执行完上述命令后,模拟器和真机都不会报错了。亲测有效!
5、Xcode 10d打包审核不通过报错
代码语言:javascript复制Dear Developer,
We identified one or more issues with a recent delivery for your app, "XXXXXX".
Please correct the following issues, then upload again.
Invalid architectures - This app has invalid architecture,
and may have been built with invalid build settings or incompatible tools.
Try rebuilding the app with the latest Xcode version.
If you are using third party development tools, contact the provider.
Best regards,
The App Store Team
解决方法: 就是把targets 设置为8.0即可。 Xcode 10 doesn't support deployment targets lower than 8.0. You will either need to update the deployment target, or alternatively, if you need a lower target you can reinstall Xcode 9.4.1.*
6、Xcode 10d打包后提交报错
美工似乎无法解决这个问题,最后只能自己一个个导出并且取消 Alpha 设置。重新把新导出的图片设置到工程中即可。
7. 利用监听键盘升降的通知来实现输入支付密码的自定义试图时,总是获取不到升起来的通知
总是无法出发键盘升起来的通知,是因为模拟器的情况下,有一种情况是默认键盘不弹出来的,这个Bug很隐秘,需要使用 comand K 来切换成键盘弹出模式,才能触发键盘升起的通知!
代码语言:javascript复制- (void)willShowKeyboardFromFrame:(CGRect)beginFrame toFrame:(CGRect)toFrame
{
if (toFrame.origin.y == [[UIScreen mainScreen] bounds].size.height){//键盘收起
[self removeFromSuperview];
}else{ //键盘升起
[self setFrame:CGRectMake(0, HEIGHT-toFrame.size.height-Scale_Y(100), WIDTH, Scale_Y(100))];
}
}
8.升级Xcode 10 Error: Multiple commands produce
如下图删除对应的 inf.plist文件即可。
9.UITableView的顶部总是空出一部分
self = [super initWithFrame:frame style:UITableViewStyleGrouped]; //就是这个原因 self = [super initWithFrame:frame style:UITableViewStylePlain]; //这样初始化的就不会有空出来的部分
10.在UIAlertView的代理方法中重置keyWindow的根视图时又返回到原视图中
在一个老代码中使用了UIAlertView并且在UIAlertView的代理方法中重置keyWindow的根视图时又返回到原视图中
代码语言:javascript复制 UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"确定要注销吗" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
alertView.tag = 100;
[alertView show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.tag == 100) {
if (buttonIndex == 1) {
[[MethodTool shareTool]setUserDefaults:@"YES" :@"EXIT" ];
}
}
}
使用 UIAlertController 后就不会出现这样的问题了。