1.重复文件报错

build Phases-> 删除多余的info.plist

2.library not found for -lstdc++

苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之,苹果的解释是lib转载自斗玩网stdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。

建议把代码调整为依赖 libc++库 如果你引用的第三方厂商提供的sdk中依赖了libstdc++,联系厂商

3.StatusBar内部结构改变

现象:crash

  crash log:

  -[_UIStatusBarIdentifier isEqualToString:]: unrecognized selector sent to instance 0x283452820

  * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[_UIStatusBarIdentifier isEqualToString:]: unrecognized selector sent to instance 0x283452820’

解决方案:

+ (NSString *)getIphoneXNetWorkStates {
UIApplication *app = [UIApplication sharedApplication];
id statusBar = [[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"statusBar"];
id one = [statusBar valueForKeyPath:@"regions"];
id two = [one valueForKeyPath:@"trailing"];
NSArray *three = [two valueForKeyPath:@"displayItems"];
NSString *state = @"无网络";
for (UIView *view in three) {
//alert: iOS12.0 情况下identifier的变成了类"_UIStatusBarIdentifier"而不是NSString,所以会在调用“isEqualToString”方法时发生crash,
//修改前
// NSString *identifier = [view valueForKeyPath:@"identifier"];
//修改后
NSString *identifier = [[view valueForKeyPath:@"identifier"] description];
if ([identifier isEqualToString:@"_UIStatusBarWifiItem.signalStrengthDisplayIdentifier"]) {
id item = [view valueForKeyPath:@"_item"]; //alert: 这个问题和上边一样itemId是_UIStatusBarIdentifier 类型,不是string
NSString *itemId = [[item valueForKeyPath:@"identifier"] description];
if ([itemId isEqualToString:@"_UIStatusBarWifiItem"]) {
state = @"WIFI";
}
state = @"不确定"; } else if ([identifier isEqualToString:@"_UIStatusBarCellularItem.typeDisplayIdentifier"]) {
UIView *statusBarStringView = [view valueForKeyPath:@"_view"];
// 4G/3G/E
state = [statusBarStringView valueForKeyPath:@"text"];
} } return state;
}

4.新版本iPhoneXR,iPhoneXS,iPhoneXS MAX适配

  • 各个机型枚举
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhoneXR ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO)

#define iPhoneXS_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) : NO)
  • 目前iPhonex都是刘海屏,判断处这个特性,就可以统一做适配了

    #define isIPhoneXAll ([UIScreen mainScreen].bounds.size.height == 812 || [UIScreen mainScreen].bounds.size.height == 896)
  • 目前iPhonex都是刘海屏,状态栏的高度均为44pt

    #define isIPhoneXAl ([[UIApplication sharedApplication] statusBarFrame].size.height == 44)
  • 针对继承自UIScrollView的,需要处理一下内边距 第一步:关闭自动调整内边距

    if (@available(iOS 11.0, *)) {
    [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }

最新文章

  1. 视图控制器的View整体上移问题
  2. H5常用代码:适配方案5
  3. 数据结构算法C语言实现(二十七)--- 7.2图的遍历
  4. GridLayoutManager
  5. Servlet & JSP - Java Web 访问资源的路径问题
  6. (hdu)1285 确定比赛名次
  7. 2、Charm Bracelet( poj 3624)简单0-1背包
  8. [性能分析]linux文件描述符(转)
  9. OC-UICollectionView实现瀑布流
  10. Unix - 文件中构成一个空洞的分析
  11. ajax调用WebAPI添加数据
  12. Win7 VS2017 Boost Python入门
  13. Vue 开源项目库汇总(转)
  14. EL表达式和JSTL标签库
  15. 设计模式-结构型模式,python桥接模式
  16. @OneToMany、@ManyToOne以及@ManyToMany讲解
  17. sparkr——报错
  18. wepy build 错误 [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件。
  19. 购物车功能:使用jQuery实现购物车全选反选,单选,商品增删,小计等功能
  20. 解决Gearman 报sqlite3错误

热门文章

  1. Eclipse Qt开发环境的建立
  2. 转:攻击JavaWeb应用[5]-MVC安全
  3. 7/31 CSU-ACM2018暑期训练7-贪心
  4. python实现RabbitMQ同步跟异步消费模型
  5. JZYZOJ1376 [coci2011]友好数对 容斥定理 状态压缩
  6. poj 3464(Trie)Approximations
  7. BZOJ 3669 [Noi2014]魔法森林(贪心+LCT)
  8. [SRM568]DisjointSemicircles
  9. 【BFS】【并查集】【Tarjan】【LCA】Gym - 101173H - Hangar Hurdles
  10. [经验]我的电脑只有IE64位浏览器能上网,其他软件都上不了网