2020年2月

在使用Xcode进行iOS手机APP开发的时候,最方便的方式就是数据线连接手机,这样无需任何设置就可以直接开启真机调试。

同样,在无需发布到App Store的一些临时用APP的安装也可以用这个方式!

由于最近数据线经常不好用,而且同时需要在不同分辨率的设备上调试,如果同时插多跟线亦或是一会换一个就会造成非常不方便的情况,那么基于网络进行真机调试就显得非常有必要了。

- 阅读剩余部分 -

1. tableView下方出现莫名的空白

  1. tableFooterView问题 一般来说,tableview会默认有一个footerview 解决:在视图加载时将这个footerview设为没有高度或者是空view就可以

    tableView.footerView = UIView()
    tableView.footerView.height = 0
  2. contentSize自动计算问题 tableView会有一个自动计算contentSize的功能 即我们改变dataSource里的数据刷新视图的时候,tableview的总高度是被改变的,而这时自动计算出来的,不像scrollview是需要手动指定的。这时如果系统计算的预估值出现误差就会出现空白的问题。 解决: 设置tableView的自动预估值为0

    tableView.estimatedRowHeight = 0

- 阅读剩余部分 -

最近刚更新 macOS 10.15 Catalina,写一个新的ios项目的时候发现,pod突然不能用了。提示找不到文件。 与此同时,打开bash的时候还在提示几行英文。 仔细一看,是推荐换一个命令行的工具,叫zsh。通过复制系统提示可以一键切换过去。

zsh: /usr/local/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory

切换完了之后尝试使用pod 依然提示找不到文件。于是在网上搜索。

- 阅读剩余部分 -

在使用SwiftyJSON做数据传输的时候,经常需要从JSON格式中取值到对象中,在开发ios应用时,对象的字段和类型通常也是固定的,如何在接口获取到数据的时候优雅的进行类型转换是一个很值得考虑的细节。

优雅不仅是在可读性上提高,同时也方便后期对于数据格式的管理维护。

否则每次做细节调整的时候,需要查找所用的工作量就不可小觑了。

在网上也有通过反射机制来实现所有类自动转换的,见参考1。逻辑上是成立的,没有仔细研究。实际测试发现无法转换(与语言版本等可能有关)。

这里我先用比较务实的方式,做一层封装。主要完成的是将JSON赋值操作,写入到对象的结构体中,这样的话我们就不用在业务流程中进行复杂的赋值操作了。

1. 设计一个用于支持JSON互转的接口

这里我设计了两种初始化的方式,实际上一种就够了 主要是调用的时候写法略有不同,且便捷初始化开销更小一点。 我个人会喜欢以函数名来区分不同的运作方式,所以额外增加了静态的fromJSON方法

- 阅读剩余部分 -

想要做好iOS的应用开发,深入的理解Cocoa框架是十分重要的。 今天做一下自上而下梳理,这样在开发的时候会更清晰,遇到问题也可以更容易的找到方向。

OS X架构中的Cocoa Cocoa in the architecture of OS X

iOS架构中的Cocoa Cocoa in the architecture of iOS

Cocoa

Mac OS X上五大API之一 Cocoa, Carbon, POSIX, X11, Java

- 阅读剩余部分 -