纯代码并不是在所有的系统下都是适配的。目前我正在扫尾适配阶段 开启多个系统进行适配将所遇到的问题进行记录。如果对你有所帮助,请点个赞👍。如果你有更好的解决方式,请不吝赐教,在留言区留下你的解决方式。
1.导航栏右上角
例如:
UIButton *releaseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[releaseButton setTitle:@"登录"forState:normal];
releaseButton.titleLabel.font =[UIFont systemFontOfSize:16];
[releaseButton addTarget:selfaction:@selector(jumpView) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *releaseButtonItem = [[UIBarButtonItem alloc] initWithCustomView:releaseButton];
self.navigationItem.rightBarButtonItem = releaseButtonItem;
以上在9.0系统是不显示的 替换方式 (亲测有效)
UIBarButtonItem *rightBarItem = [[UIBarButtonItem alloc] initWithTitle:@"登录" style:UIBarButtonItemStylePlain target:self action:@selector(jumpView)];
self.navigationItem.rightBarButtonItem = rightBarItem;
2.观察者模式 未移除的问题
今天刚刚遇到的问题 ios11 是没问题的 10以下 包括10 都会出现的闪退
An instance 0x7fca380ab600 of class UITableView was deallocated while key value observers were still registered with it. Current observation info: ( Context: 0x0, Property: 0x618000244c80> )
翻译过来 就是监听没有移除
然后找到导致闪退的类 然后重新对监听进行重新的定义
//使用kvo监听scrollView的滚动
// [self addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
可以简书搜索 自动移除监听 就出来了
[selfsj_addObserver:self forKeyPath:@"contentOffset"];
3.// self.navigationController.navigationBar.translucent = NO;
上面这段代码 不要乱使用 乱使用 会导致意想不到的效果 要是出现了 删了就可以了
4.消除警告,如果你是pod出来的项目 有时候 pod install 后会出现999+的警告代码 可能看的你是心乱如麻 在pod 配置文件中添加下面👇这个代码 就可以了。
inhibit_all_warnings!
5.有的时候 后台返回数组为 null 需要进行空数组判断
[data isKindOfClass:[NSArray class]] && data.count > 0 以下这段代码进行判断
网友评论