作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/6492385.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 去年到今年做了几个 iOS上的 AIR Native Extension (简称 ANE), 痛苦不堪.  ANE 的开发方式早已被前辈吐槽多多 效率低下 浪费生命 严重压低kpi .体验过Unity的插件开发, 相比之下真的是爽快多了,效率飙升. 言归正传, 痛苦之一就是难以实现AppDelegate 生命周…
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本篇主要探讨的是iOS应用中各种状态的跃迁过程,建议大家通过修改AppDelegate.swift,在每个过程中添加日志输出代码,从而观察其变化. 作为应用程序的委托对象,AppDelegate类在应用程序生命周期的不同阶段会回调不同的方法. 首先,咱们先来了解一下iOS应用的不同状态和他们之间的关系…
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视图控制器的生命周期. 在视图不同的生命周期中,视图控制器会回调不同的方法,具体如图: 在视图控制器已被实例化,视图被加载到内存中时,会调用viewDidLoad方法,这时视图并未出现. 在该方法中,通常会对所控制的视图进行初始化处理. 视图可见前后会调用viewWillAppear:方法和viewD…
iOS程序的运行原理: main.m: 1. main.m 主函数是所有程序的入口函数. 2. 在main函数里是UIApplicationMain函数,开启了一个无限循环,以监听该应用. 该UIApplicationMain函数有4个参数,前两个分别是main函数的参数. 第3个参数是UIApplication的类名,代表该App(委托),默认为nil就代表当前应用,等同于[NSStringFromClass([UIApplication class])].第4个是应用的代理类名. 创建一个U…
说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iOS启动原理图.png 具体执行流程 程序入口进入main函数,设置AppDelegate称为函数的代理 程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:] 创建window窗口 程序被激活[…
引言 诚然,Xamarin是个优秀的跨平台解决方案,但毕竟还是不能将Native中所有的方法都直接实现.诸如各种第三方库,也都只有java/oc原生版本的SDK,无法直接拿过来直接使用.但,不能直接拿过来用,就没办法扩展APP功能,不能使用已经造好的轮子吗?答案是否定的!Xamarin中可以通过引用java中的Jar包,oc中的A档,实现这一切! 什么是a档? a档就是iOS中的class library,我是这么理解为啥叫a档的,因为a档生成的文件扩展名是.a.举个栗子: 如何建立a档 1.在…
#import "HMViewController.h" @interface HMViewController () @property(nonatomic,strong)NSArray *flags; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%s 加载完毕",__FUNCTION__); // Do any additiona…
控制器创建的生命周期 1. 如果从stroryBoard 中产生一个controller,那么会先调用initWithCoder:, awakeFromNib, loadView,viewDidLoad,viewWillAppear,viewWillLayoutSubviews,不会调用init方法. 2. 如果从代码中产生一个ViewController,那么会调用init方法,loadView,viewDidLoad,viewWillAppear,viewWillLayoutSubviews…
@property (weak, nonatomic) id<UIGestureRecognizerDelegate> restoreInteractivePopGestureDelegate; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _restoreInteractivePopGestureDelegate = self.navigationCo…
@interface NJTwoViewController () @end @implementation NJTwoViewController // 当控制器的view加载完毕就调用 - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"Two - viewDidLoad"); } // 控制器即将显示的时候调用 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppea…