. MKMapView 疑似无法释放
环境:XCode9.2, iOS10.3.3, iPhone5
>问题描述:从控制器 A present 到控制器 B,B 中添加了一个 MKMapView,之后从 B dismiss 回 A,结果是控制器 A 整个界面无法进行任何操作,像是整个屏幕被蒙上一层透明的遮罩。
进行检查后,发现屏幕并无透明遮罩。
通过 Storyboard 和代码两种方式去初始化 MKMapView,都是相同的结果。
> 解决:
这可能是 MKMapView 的析构函数的问题,不管你的地图视图对象如何配置,在Xcode8和iOS10系统下都有几率出现冻结你的应用程序,主线程挂起。在dealloc方法中添加如下代码,可解决
- (void)dealloc
{
#if DEBUG
// Xcode8/iOS10 MKMapView bug workaround
static NSMutableArray* unusedObjects;
if (!unusedObjects)
unusedObjects = [NSMutableArray new];
[unusedObjects addObject:mapView];
#endif
}
. UITableView 顶部偏移问题
环境:XCode9.2, iOS10.3.3, iPhone5
>问题描述:在控制器 A 中添加了2个 UITableView,tableA 和 tableB。 tableA 的顶部向下偏移了20个像素,tableB 显示正常。设置以下代码没有作用
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
> 解决:
当你的控制器上面添加了一个控件的时候, 再添加 tableView 时(也就是说 tableView 不是控制器上的第一个视图时), tableView就会做出判断, 不会向下偏移。添加以下代码可解决
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
tableA.contentInset = UIEdgeInsetsZero;
tableA.scrollIndicatorInsets = UIEdgeInsetsZero;
}
. NSTimer 刷新 UIButton 文字时闪烁
环境:XCode9.2, iOS10.3.3, iPhone5
问题描述:自定义了一个获取验证码时用的倒计时按钮,在每次刷新文字时都会闪烁
> 解决:
将 UIButton 的 type 从 system 改为 custom 即可。
. pod update warning Insecure world writable mode 040777
在利用命令行操作CocoaPods时,可能会遇到这样的 warning: Insecure world writable dir xxxxx in PATH, mode 040777,但是却又不妨碍使用。
提示含义: 目录被赋予777的权限,不安全。
如何解决:将提示权限改为775,问题即可解决。
具体实现:
在终端写入下列命令行,即可消除上面的提示。xxxxx 是 warning 中提示的文件路径
sudo chmod go-w xxxxx
sudo chmod 775 xxxxx
. You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory
使用命令 sudo gem install cocoapods 安装 cocoapods,仍然提示没有权限,
可以使用 sudo gem install -n /usr/local/bin cocoapods
. -ObjC 引起的 duplicate symbols
问题描述:在项目中用到了 A,B 两个公司的 framework,A公司的 framework 需要设置 -ObjC 才可以正常使用,但加了 -ObjC 后 B 公司的 framework 就会报 duplicate symbols 错误。
原因分析:
Other linker flags 对应 ld 命令执行时后面所加的参数
-ObjC:链接器会把静态库中所有的 .o 文件都加载到可执行文件中(如果库中和加载库的程序有重复的文件,便会出现如上错误)
-all_load:链接器会把所有找到的目标文件都加载到可执行文件中
-force_load:把指定要加载路径的库文件全部加载,不影响其余库文件。
解决方法:
删除 -ObjC
使用 -force_load 加载 A 公司的 framework
网友评论