coding with objc & swift

使用Autolayout实现UITableView的Cell动态布局和高度动态改变

| Comments

本文翻译自:stackoverflow

有人在stackoverflow上问了一个问题:

如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且保持平滑的滚动?

这个问题获得了接近1000的支持和1100+的收藏,答案更是超过了1800+的支持,很详细的说明了如何在iOS7和iOS8上实现UITableView的动态行高计算。答案对实现UICollectionView的动态行高也具有参考意义,所以在这里将这个答案翻译了一下,希望对大家有所帮助。以下是答案的全文翻译:

全文略长,不喜欢阅读可以直接看示例代码:

Model-View-ViewModel for iOS

| Comments

译自:Model-View-ViewModel for iOS

如果你已经开发过一段时间的iOS应用程序,那么你一定听说过模型—视图—控制器或MVC模式。这是构建iOS应用的标准方式。不过最近,我越来越厌倦MVC的一些缺点。在这篇文章中,我们来重温一下MVC,它是什么,它有什么弱点。然后我再告诉你一种新的构建应用的方式:Model-View-ViewModel。拿出你的buzzword bingo卡片,我们要来个范式转换。

使用NSSecureCoding协议进行编解码

| Comments

译自:Object Encoding and Decoding with NSSecureCoding Protocol

在iOS和Mac OS上,NSCoding是一种极其简单方便的用来存储数据的方法。它可以直接将你的数据模型对象写入一个文件,之后又可以直接将它们读入内存而不需要编写任何文件解析和序列化的逻辑。将任何对象(假设它已经实现了NSCoding协议)保存至一个文件,你只需要这样做:

1
2
Foo *someFoo = [[Foo alloc] init];
[NSKeyedArchiver archiveRootObject:someFoo toFile:someFile];

之后要加载它,只需要这样:

1
Foo *someFoo = [NSKeyedUnarchiver unarchiveObjectWithFile:someFile];

7种常见的代码问题

| Comments

译自:7种常见的代码问题

我做过很多代码审查,我发现了7种最常见的代码问题。

被注释掉的代码

这让我觉得你没有学会如何使用版本控制工具和标记功能。如果这些旧代码已经不再有用了,我干嘛还需要读它!?

如果它很重要,将来你可能会需要返回来查看它。那么你可以在版本控制工具中给它添加一个适当的标记,然后把它从当前代码中移除掉。

无用的注释

那些没有任何价值的注释,那些明摆着是显而易见的注释,或者对部分代码做的注释,都应该放进方法里面。

记住: 注释很快就会过时的,并且人们不会维护它。