IBOutlet 何时初始化?

2023-12-23

我通过 Interface Builder 设置了文本视图的出口。文本视图加载正常,但是我无法以编程方式访问它的任何属性,因为出口始终是nil.

什么时候实例化?即使在我之后applicationDidFinishLoading被调用,它仍然不是“活动的”或未归档的。


插座不会实例化,因为插座是变量(或属性)。

加载 nib 时,nib 中的对象会被实例化,并且在创建对象之后但之前,它们会尽可能立即分配给每个出口。awakeFromNib被发送到所有相关对象。

换句话说,笔尖加载按以下顺序执行以下所有操作:

  1. 创建或重新创建存储在笔尖中的所有对象。 (这excludes文件的所有者、第一响应者和其他外部和想象的对象。)
  2. 将笔尖中连接的每个插座属性设置为笔尖所连接到的同一笔尖中的对象。 (例如:视图控制器的view出口到顶层视图。)
  3. Sends awakeFromNib笔尖中的对象,以及(在 Cocoa 中)文件的所有者(例如,窗口控制器)。

#2 回答了你的问题。

资源编程指南有更多信息 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html。 Cocoa 和 Cocoa Touch 之间的细节略有不同,特别是在发送哪些对象方面awakeFromNib消息以及哪些消息不是。

什么时候实例化?即使在我之后applicationDidFinishLoading被调用,它仍然不是“活动的”或未归档的。

文本视图不是吗?

可能是这样,只是您没有连接插座。在笔尖上检查一下。

另一种可能性:您在另一个笔尖中创建了文本视图,而不是在创建应用程序委托的笔尖中创建了文本视图(如果您甚至在笔尖中创建了应用程序委托),并且您没有将视图连接到右侧的出口目的。也许您在文本视图的笔尖中创建了第二个应用程序委托;这个应用程序委托实际上并不是应用程序的委托,这就是为什么真正的应用程序委托看不到文本视图 - 您将文本视图提供给冒名顶替者,而不是真正的 McCoy。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IBOutlet 何时初始化? 的相关文章

随机推荐

  • 上传图像并使用 Flask 将其显示为响应

    我是前端开发的初学者 必须在 Flask 中为项目制作一个小型 Web 应用程序 我编写了一个 Flask 应用程序 可让您使用 HTML 表单上传图像 然后在单击 上传 时将图像显示给用户 我需要对此进行修改 以便每次用户上传图像时图像不
  • Gatsby:基本路径和路径前缀有什么区别?

    我不明白之间的区别basepath and path prefix in Gatsby 以及何时使用每个功能 基本路径 https www gatsbyjs org tutorial part 7 https www gatsbyjs or
  • 防止Android的TextView破坏链接

    这个问题可能与this one https stackoverflow com questions 21094349 prevent line break in textview 但由于它的答案都没有真正解决问题 所以我会再问一次 我的应用
  • 规格2:如何使用“failtrace”选项

    在我的specs2测试中 我经常使用辅助函数来同时测试一组条件 不幸的是 这使得失败测试的行号输出毫无用处 因为所有失败都在同一行上 谷歌发现有一个 failtrace 选项可以输出失败的堆栈跟踪 但是 我找不到如何实际使用它的示例 是否在
  • 在MySQL触发器中,如何获取发送请求的用户信息?

    我使用的是 MySQL 5 5 带有触发器 我想检查用户是否可以执行其请求 这只是一个例子 我该如何处理这样的代码 Trigger DDL Statements DELIMITER USE database CREATE TRIGGER T
  • 通过JMockit调用私有方法来测试结果

    我正在使用 JMockit 1 1 我想做的就是调用私有方法并测试返回值 但是 我无法准确理解如何从JMockit 解封装 http jmockit googlecode com svn trunk www tutorial Behavio
  • HTTP PATCH:处理数组、删除和嵌套键创建

    我正在寻找实施指南PATCH使用 JSON 在 RESTful api 中部分更新名词的动词 了解这一点PATCH对于部分更新 我们仍然缺乏关于删除键 创建或更新嵌套键和数组的语法的标准化 假设我GET一个东西 GET users 42 i
  • 自定义 php SessionHandler 的自定义serialize_handler(数据库存储)

    在 php 中使用第 3 方 django 会话管理的过程中 我需要自定义序列化函数为了正确地编码 解码它以适应 django 的会话数据加盐存储 目前 ini 设置 session serialize handler 似乎可以是 php
  • MulticastSocket 构造函数并绑定到端口或 SocketAddress

    我可能对这里的术语 绑定 有一个根本性的误解 但我对 绑定 的用法感到困惑组播套接字 http docs oracle com javase 7 docs api java net MulticastSocket html它是构造函数 他们
  • 图像处理语言/环境

    我有兴趣研究一些图像处理 我认为 matlab 是解决这个问题的最佳方法 但现在我无法访问 matlab 我尝试了 Octave 但由于某种原因 它甚至无法加载 png bmp 或除 1 种特定格式以外的任何格式 R 似乎也不是这里的关键
  • UIAlertView 中的时间选择器

    我需要一个要求输入时间的弹出窗口 我认为警报视图是可行的方法 但我不知道从哪里开始将时间选择器嵌入到警报视图中 除非有更好的方法来做到这一点 对于其他人 我将评论中的问题改编为时间选择器 如下所示 let vc UIViewControll
  • Python:检查列表中至少一个正则表达式是否与字符串匹配的优雅方法

    我有一个 python 中的正则表达式列表和一个字符串 有没有一种优雅的方法来检查列表中的至少一个正则表达式是否与字符串匹配 我所说的优雅 是指比简单地循环所有正则表达式并根据字符串检查它们并在找到匹配项时停止更好的方法 基本上 我有这个代
  • 跨一对多关系选择 COUNT

    对于两张桌子 player and team 对于 1 关系 球员与球队 您如何计算每个球队有多少球员 失败的尝试 SELECT team teamid SELECT COUNT player team FROM player FROM t
  • Django 注释总和

    我正在尝试对查询集中包含多行的列进行简单求和 我的直接问题是 a 我该如何设置get queryset 包括一列的总和以及 b 如何访问模板中的该元素 下列的this https stackoverflow com questions 86
  • Python正则表达式匹配:## ##

    我正在逐行搜索文件中是否出现 random string 除了多个 的情况外 它都有效 pattern prog re compile pattern string lala hey there result prog search str
  • 优化 R 中的买入和卖出信号

    我需要优化现有的买入和卖出信号 就像 r 中的 backtrader 一样 Signal会看起来像 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 where 1 持有 0 买入 1 卖出 优化信号后应该是 1 1
  • Octave信号包安装

    我使用的是 Ubuntu 16 04 目前使用 Octave 作为 Matlab 的倒数进行信号处理 一切都很好 直到我需要使用medfilt1函数来获取中位数 Octave 生成 了一个错误报告 指出我的系统上未安装信号包 浏览了一下后我
  • 如何从 Int 进行转换?到字符串

    在 Swift 中 我无法通过以下方式将 Int 转换为 String var iString Int 100 var strString String iString 但是我的变量是 Int 吗 有错误 Cant invoke init
  • 使用 Webpack 连接并缩小所有 less 文件而不导入它们

    我有一个包含大约 20 个独立的较少文件的文件夹 我需要通过 Webpack 将它们连接成一个文件并将其存储在我的 dist 文件夹中 我当前的Webpack配置文件如下 const path require path const webp
  • IBOutlet 何时初始化?

    我通过 Interface Builder 设置了文本视图的出口 文本视图加载正常 但是我无法以编程方式访问它的任何属性 因为出口始终是nil 什么时候实例化 即使在我之后applicationDidFinishLoading被调用 它仍然