一、self.navigationController?.popViewControllerAnimated(animated: Bool) -> UIViewController?
- pop掉当前View后,并不会调用上一个View的viewDidLoad,但会调用上一个View的viewWillAppear
- #?还不清楚参数animated的作用
二、文字适配屏幕
- 方法1:
- UIFont.systemFontOfSize( 字号 * DeviceWidth / 375 )
三、 NSBundle(直接继承NSObject)
[参考资料] http://www.bkjia.com/IOSjc/965120.html
- 定义:代表app中代码和资源的文件在文件系统的位置,即定位程序使用的资源(代码、徒刑、音乐等数据)在文件系统中的位置,并可以动态的加载或卸载掉可执行代码。
- 程序目录 <=> main bundle
**四、**NSNotificationCenter.defaultCenter()
[参考资料]http://www.cnblogs.com/pure/archive/2012/04/25/2469424.html
- 通知响应方式
- Delegate
- NSNotification
- 相应步骤:
- NSNotificationCenter注册观察者及事件(包括感兴趣的事件和响应事件)
- NSNotificationCenter激发事件
- 观察者执行相应事件
五、 Cocoapods
- cocoa:Apple提供的API
- cocoa pods:包管理工具
- 步骤:
- 创建Podfile->pod install
- Podfile:
platform : iOS , '8.0'
use_frameworks!
target X do
pod ...
end
六、 CoreLocation
- 步骤:import CoreLocation -> 实例CLLocationManager() -> 实现代理(didUpdateLocations和didFailWithError)
- ⚠️:>= iOS 8需要 locationManager.requestAlwaysAuthorization(),否则无法回调
- ⚠️:locationManager需要 startUpdatingLocation()
- ⚠️: info.plist ->NSLocationUsageDescription/NSLocationAlwaysUsageDescription添加提示
七、 id类型( oc )
- 万能指针 : id = NSObject * =? AnyObject
八、桥接
创建 appname-bridging-header -> #import .. -> build setting
九、 AFNetworking
- 已桥接,需import AFNetworking( 在一些教程中显示不用import , 估计教程是iOS6 )
十、归档和解归档
[参考资料] http://www.tuicool.com/articles/BBbmAbI
补充:
数据持久化方式:属性列表(plist)/归档(NSKeyedArchiver)/数据库(SQLiet\CoreData)
定义
- 归档:将对象序列化(#?#)(¥将对象的状态信息转化为可以存储或传输的形式的过程 17/2/2/10:26)后存储在磁盘上
- 解归档: 反序列化⚠️归档和解归档其中任意一个对象,都要对整个文件进行归档或解档
- ⚠️归档后的文件是加密的 -> 扩展名可任意