nib 加载结构时   发送一个awakeFromNib消息告诉每个对象重建一个nib 归档,但只有在所有的档案中的对象
已加载和初始化。当一个对象接收awakefromnibmessage,这是保证其所有出口和行动连接已经建立。

你必须调用awakefromnib  super实施给父类的运行的机会去做额外的初始化工作。虽然这种方法的默认实现不执行任何操作,许多UIKit类提供非空的实现。你可以叫super 实现在任何一点你自己的awakefromnib方法里。

实例化过程中,存档中的每个对象未归档然后初始化的方法适合于它的类型。符合nscoding协议对象(包括所有子类和处理)正在用他们的initwithcoder初始化:方法。不符合nscoding协议所有的对象都是使用init方法初始化。在所有对象被实例化和初始化,the nib 加载代码,将所有这些对象的出口和动作的连接。然后调用对象的awakefromnib方法。更详细的信息有关的步骤,然后nib在加载过程中,看到“NIB文件”在资源规划指南。

实例化过程中,档案中的每个对象未归档然后初始化的方法适合于它的类型。符合nscoding协议对象(包括所有子类和处理)正在用他们的initwithcoder初始化:方法。不符合nscoding协议所有的对象都是使用init方法初始化。在所有对象被实例化和初始化, the nib加载代码,将所有这些对象的出口和动作的连接。然后调用对象的awakefromnib方法。更详细的信息有关的步骤,然后the nib在加载过程中,看“NIB文件”在资源规划指南。

因为在对象实例化一个档案的顺序是无法保证的,你的初始化方法,不应将消息发送到其他对象的层次结构。消息发送到其他对象可以被安全地从awakefromnib方法。

通常,你实现目标需要额外的设置,不能在设计时做的awakefromnib。例如,你可以使用这个方法来定制任何控件的默认配置匹配用户的喜好或其他控件的值。你也可以使用它来恢复单个控件到你的应用的一些以前的状态。

下面来自   http://book.51cto.com/art/201209/357054.htm

《苹果开发之Cocoa编程(原书第4版)》本书系统介绍了Objective-C语言、Cocoa主要的设计模式、必要的开发工具Xcode和Instruments等,同时新引入了ARC、blocks、view-based table views和Mac应用商店,并专门开辟一章用于介绍在iOS上的基础开发。相比于之前的版本,本书在Cocoa框架新特性、新技术的基础上,更加侧重实战,也更加结合应用发展的最新趋势。本节为大家介绍awakeFromNib。

AD:2013云计算架构师峰会课程资料下载

2.3.5 awakeFromNib

注意,目前完成的应用程序还是有一些瑕疵的。当应用程序启动时,应用程序只显示“Label”字符而不是一些有意思的东西。那现在来解决这个问题,让应用程序启动后显示日期和时间。

正如前面讨论过的,NIB文件是应用程序所有对象的存档。当程序启动后,对象从文件中释放,重新赋予生命,准备接收用户触发的事件信息。这种机制有些与众不同:大多数GUI的设计都是为界面布局产生源代码;相反,Interface Builder则允许开发者编辑好页面元素的状态后,把它们保存在文件里面。

在对象从文件中释放、获得生命,而没有接收到用户事件以前,所有的对象自动发送awakeFromNib消息。开发者可以添加awakeFromNib方法,用来初始化文本框的值。

下面在RandomController.m文件中添加awakeFromNib方法。现在,输入以下文本,稍后就会了解其功用了。简单而言,就是创建NSDate的实例,用于显示当前时间。然后设置文本框,将其值设置为当前日历时间对象。

 

文件中,方法定义的顺序并不重要,只要确保在@implementation之后、在@end之前就可以了。

awakeFromNib方法不是手动调用的,通常都是自动调用的。再次运行开发的应用程序,读者会看到如图2-23所示的时间和日期。

 
图2-23 完成后的应用程序

在Cocoa中,有很多方法都是自动调用的,就像awakeFromNib一样。在阅读本书的过程中,读者可能会产生一些困惑,不明白究竟哪些方法需要手动调用,哪些方法又是自动调用的。笔者将在后续内容中尽量进行区分。

awakeFromNib相关推荐

  1. awakeFromNib方法和viewDidLoad方法区别

    当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的awakeFromNib函数来响应这个消息,执行一些必要的操作. 也就是说只有通 ...

  2. iphone开发基础:loadView/viewDidLoad/initWithNibName/awakeFromNib/initWithCoder的用法

    每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的initWithNibName/awakeFromNib/initWithCod ...

  3. initWithNibName/awakeFromNib/initWithCoder

    2019独角兽企业重金招聘Python工程师标准>>> 每个ios开发者对loadView和viewDidLoad肯定都很熟悉,虽然这两个函数使用上真的是非常简单,但是和类似的ini ...

  4. initWithFrame/initWithCode/awakeFromNib调用

    1.当控件不是从 xib.storyboard 中创建时会调用initWithFrame方法 2.当控件是从xib.storyboard中创建时会调用initWithCoder,awakeFromNi ...

  5. iOS drawRect 和 awakeFromNib

    今天想在一个view上绘制一个虚线边框,百度到的代码如下: CAShapeLayer *borderLayer = [CAShapeLayer layer];borderLayer.frame = s ...

  6. awakeFromNib与initWithCoder

    (1)awakeFromNib和initWithCoder:差别 awakeFromNib 从xib或者storyboard加载完毕就会调用 initWithCoder: 只要对象是从文件解析来的,就 ...

  7. initWithFrame,initWithCoder,awakeFromNib的区别

    这三个都是系统初始化视图时会调用的方法. initWithFrame主要用在非xib创建的视图 initWithCoder和awakeFromNib主要用在xib创建的视图    两个调用的先后顺序是 ...

  8. [Cocoa]_[初级]_[关于nib文件加载过程awakeFromNib]

    场景 在用xcode开发Cocoa程序时, 我们一般会使用IB来设计界面xib. 而在xib文件里我们往往会对用到的自定义NSView进行绑定以便引用使用. 但是这些xib里的object是什么时候进 ...

  9. loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法

    转载,原地址为:http://jianyu996.blog.163.com/blog/static/11211455520131226840879/ 请尊重原创: 1,无论XIB还是代码创建都会调用l ...

最新文章

  1. JVM---垃圾回收算法详解
  2. 虚拟机下CentOS7开启SSH连接
  3. Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutputStream用法)
  4. 日本字全角字符linux,Linux命令行输入全角字符被转化
  5. 电脑安装系统出错蓝屏报错为 STOP 0xc0000020 ,什么原因?
  6. vs 调用matlab引擎,vs2010 matlab混合编程调用matlab引擎
  7. php redis官方网站,PHP-redis中文文档介绍
  8. iOS开发中遇到的一些优化手段(即时更新)
  9. R语言中的机器学习包
  10. Typescript入门教程(B站黑马程序员)
  11. 有道词典单词本导入到欧路词典单词本
  12. 网络负载率计算公式 linux,如何理解Linux CPU负载率的计算方式
  13. 公众号及小程序的测试点
  14. 坦克世界怎么显示服务器准心,坦克世界设置方法 坦克世界如何设置图像
  15. Apache Pegasus 首次 Meetup 圆满落幕
  16. 安卓机更新系统会卡吗_都说安卓手机用一两年就卡到不行,但知道这3招,同样可以用很久...
  17. OLED屏幕笔记本 | 看久了眼睛不舒服 | 调整
  18. 2020年 Web 开发的最佳编程语言
  19. 初识 Linux — 文本编辑器
  20. c语言学生综合测评系统_c语言图书管理系统_c语言学生综合测评系统_c语言个人账本管理系统...

热门文章

  1. 警惕无良IT培训机构的套路
  2. ipad极品飞车无限狂飙无法连接服务器,极品飞车无极限iPad版
  3. java 代码模拟抽奖(练习)
  4. python简单游戏编程入门_[翻译]Python游戏编程入门
  5. 【小技巧】提取PDF中某一页或多页并保存为新pdf
  6. MySQL数据库基本操作---DDL
  7. win10隐藏3D对象、视屏、文档(隐藏侧边栏/导航图标)
  8. Selection使用简介
  9. 计算机考证能直接考三级吗
  10. C-4:对正方体加载纹理