美文网首页
问题记录

问题记录

作者: 十月末的故事 | 来源:发表于2018-10-25 12:10 被阅读5次

. 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

相关文章

  • 记录问题

    iOS11 之后,添加导航栏之后,视图添加在self.view 上面之后,视图的位置是0 0 开始的,结果视图添加...

  • 【问题记录】问题记录专用

    【监听WebView点击事件】日期:2018.06.06 问题描述:使用WebViewClient中的should...

  • 文集序

    用于记录处理过 ubuntu 问题 用于记录处理过 windows 问题 用于记录处理过手机操作系统问题 用于记录...

  • 问题记录

    pip 安装包问题 问题描述:pip install 安装whl文件报错错误信息:UnicodeEncodeErr...

  • 问题记录

    1 使用Keras中自带的MNIST数据集的时候提示不存在 解决办法:直接复制这里提示的下载地址,下载匹配的mni...

  • 问题处理记录

    【Java】java mail Domain contains control or whitespace 异常描...

  • 问题记录

    问题一,打卡刷屏问题 回答人:奶爸 第一互动性强。 第二群反馈。 其他软件,易效能软件更早,但目前不能完成其他信息...

  • 问题记录

    . MKMapView 疑似无法释放 . UITableView 顶部偏移问题 . NSTimer 刷新 UIBu...

  • 问题记录

    useLibrary'org.apache.http.legacy' I libprocessgroup: Kil...

  • 问题记录

    最近和同事们一起在读《童年的王国》这本书,里面有很多内容想不明白,暂时记录下来,也许有一天会得到答案。 “在生命中...

网友评论

      本文标题:问题记录

      本文链接:https://www.haomeiwen.com/subject/cauilftx.html