源码篇:Mantle
Mantle是一个用于简化Cocoa或Cocoa Touch程序中model层的第三方库。通常我们的应该中都会定义大量的model来表示各种数据结构,而这些model的初始化和编码解码都需要写大量的代码。而Mantle的优点在于能够大大地简化这些代码。Mantle源码中最主要的内容包括:MTLModel类:通常是作为我们的Model的基类,该类提供了一些默认的行为来处理对象的初始化和归档操作,同时...
工具篇:Mantle
版本:1.5.3Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application.由上面这句话可知,Mantle的目的是让我们能简化Cocoa和Cocoa Touch应用的model层。那先来看看通常我们是怎么处理model层的吧。解决的问题在我们写代码时,总要面对不同的数据来源...
一种让UITableView的数据从下往上增长的方式
遇到问题一般来说tableview的数据都是从上往下增长,如下图所示(先是aaa出现在表格列表的最顶部,然后bbb出现在aaa的下面,以此类推)但是如果我们想反向这个过程该怎么做呢?如下图所示(先是aaa出现在表格列表的最底部,然后aaa被顶上去,bbb出现在aaa原来的位置)解决问题我们当然第一时间向万能的stackoverflow君求救,找到了这个 解决方案 。原理很简单就是让整个tablev...
Objective-C中的Block
1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构:栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放。其操作方式类似于数据结构中的栈,即后进先出、先进后出的原则。例如:在函数中申明一个局部变量int ...
为UITableViewController瘦身
在IOS开发中采用了MVC得模式,ViewController通常是最庞大的文件,里面包含了各种各样的大概,造成代码的复用率低下,可读性也降低,那么有什么办法来解决这个问题呢。在创建Table的时候,绑定数据源需要实现三个委托-(NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section-(...
IOS开发-Protocol协议及委托代理(Delegate)传值
前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是警告,而...
iOS 开发中手动 performSegueWithIdentifier 不生效的解决办法
相信很多人都会遇到这样的需求:APP 打开以后,判断用户是否登录,如果未登录,就跳转到登陆页。今天我也遇到了这个需求,发现我封装的一个 `func checkLoginStatus()` 放在 `viewDidLoad` 里调用根本没反映,Google 了一圈,得到了解决办法:overridefuncviewDidAppear(animated:Bool){
super.viewDidAppea...
iOS CLLocationManager定位
在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法定位了。。。。这是一大问题啊!1、首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#importCoreLocation/CoreLocation.h
@property(nonatomic,strong)CLLo...