关于Swift中的一些解释

一、UIViewCOntroller(视图View)的生命周期

说是 ViewController 的生命周期,其实指的是它控制的视图(View)的生命周期。每当视图的状态发生变化时,视图控制器会自动调用一系列方法来响应变化。
通过这些方法,我们就可以跟踪到视图的整个生命周期。各个方法按执行顺序排列如下:

1.init:

初始化程序

2.loadView:

视图初始化

这个方法不应该被直接调用,而是由系统自动调用。它会加载或创建一个 view 并把它赋值给 UIViewController 的 view 属性。
同时重写 loadView 方法的时候,不要调用父类的方法。

3.viewDidLoad:

视图加载完成,但还没在屏幕上显示出来
我们可以重写这个方法,对 view 做一些其他的初始化工作。比如可以移除一些视图,修改约束,加载数据等。

4.viewWillAppear:

在视图即将显示在屏幕上时调用

我们可以在这个方法里,改变当前屏幕方向或状态栏的风格等。

5.viewDidApper:

在视图显示在屏幕上时调用时调用

我们可以在这个方法中,对视图做一些关于展示效果方面的修改。

6.viewWillDisappear:

视图即将消失、被覆盖或是隐藏时调用

7.viewDidDisappear:

视图已经消失、被覆盖或是隐藏时调用

8.viewVillUnload:

当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用

9.viewDidUnload:

当内存过低,释放一些不需要的视图时调用。

 注意:
    自 iOS6 起,viewWillUnload 和 viewDidUnload
    这两个方法被废除了。当系统发出内存警告的时候,
    会自动把 view 给清除掉,不用我们再特别处理。

二、AppDeleGate的生命周期

AppDelegate类中定义了app进入不同生命周期(包括app启动动、闲置、进入后台、进入前台、激活、完全退出)时的回调方法。实际上在app启动时,app会自动执行一个叫main的入口函数,它通过调用UIApplicationMain函数来创建出AppDelegate类实例,并委托其实现app在不同生命周期的定制行为。
各个程序运行状态时代理的回调:

1、application didFinishLaunchingWithOptions:

当应用程序启动时执行,应用程序启动入口, 只在应用程序启动时执行一次。若用户直接启动,lauchOptions内无数据,若通过其他方式启动应用,lauchOptions包含对应方式的内容。

2、applicationWillResignActive:

在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用 ,在此期间,应用程序不接收消息或事件,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。

3、applicationDidEnterBackground:

在应用程序已进入后台程序时,要执行的委托调用。

4、applicationWillEnterForeground:

在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。

5、applicationDidBecomeActive:

在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground 方法相对应。

6、applicationWillTerminate:

在应用程序要完全推出的时候,要执行的委托调用,这个需要要设置UIApplicationExitsOnSuspend的键值。

三、继承和扩展的区别

类扩展:
如果在某个特定的应用场景中你发现现有的类缺少某项功能
那么可以通过类扩展的方式现场添加这项功能。

继承:
从已有的类创建新类的过程,提供继承信息的称为父类(超类/基类),得到继承信息的称为子类(派生类/衍生类),对象中的变量可以直接拿过来使用,通常子类除了得到父类的继承信息还会增加一些自己特有的属性,所以子类的能力一定比父类更强大。
继承的意义在于子类可以复用父类的代码并且增强系统现有的功能。

四、OC和Swift的混编

1.创建桥接文件

首先我们直接在当前项目上新增加一个文件,语言选择swiftt,然后创建,此时,会弹出一个框,询问你是否需要Xcode自动帮你创建一个桥接文件,当然我们选择是啦!点击“Create Bridging Header”,然后我们就发现,项目目录下多了两个文件:一个是我们创建的文件,另外一个是Xcode给我们创建的桥接文件。

2. OC和swift通信的中间人:

当然就是这个桥接文件了。我们把swift 要引入的oc 的类,在这个文件里导入,然后再Command+B 一下,看,红叉没有了以后,swift 要用到哪个oc 的类,import 到这个 桥接文件,这样,swift类就可以愉快得和oc 的类进行通信了。这样oc 就可以访问swift了。

五、继承和类别的区别

六、get和post请求方式的区别

Get是从服务器上获取数据,Post是向服务器传送数据。
对于Get方式,服务器端用Requset.QueryString获取变量的值,
对于Post方式,服务器端用Request.Form获取提交的数据。
Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内个个字段一一对应,在URL中可以看到。
Post是通过HTTP Post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
Get安全性非常低,Post安全性较高,但是Get方式的执行效率比Post好。
所以建议使用Get做查询,使用Post做增、删、改。

你可能感兴趣的:(关于Swift中的一些解释)