gpt4 book ai didi

iphone - initWithNibName 和 initWithCoder 之间的区别

转载 作者:行者123 更新时间:2023-12-03 18:35:27 27 4
gpt4 key购买 nike

谁能解释一下何时使用 initWithNibName 以及何时使用 initWithCoder?

最佳答案

initWithNibName: 通常与 View Controller 对象一起使用。这个想法是,您有一个 NIB 文件(或 XIB,相同的东西),其中包含您已在 Interface Builder 中设计的 UIView (或 NSView)。当你的 View Controller 启动时,它有一个 view 属性和 socket ,你必须自己绘制 - 除非你已经在 IB 中设计了它。因此,这个构造函数允许您启动新的 Controller 对象并告诉它在哪个 NIB 文件中查找其 View 。连接 NIB 本身以确保成功的讨论有点超出了此处的主题。

initWithCoder: 还有另一个任务。当您使用 encodeWithCoder: 序列化对象时,您最终需要反序列化(或“解码”)该数据以将其转回您的类的对象。

无论如何,回顾一下:只有当您希望对象支持 NSCoding 时,您才可以在类上实现 encodeWithCoder:initWithCoder:协议(protocol)。当您想要启动一个可以使用 NIB 文件中存档的对象初始化其属性的对象时,您可以使用 initWithNibName:(通常您不会自己实现它)。

NSCoding 有一个非常棒的概述 over here

关于iphone - initWithNibName 和 initWithCoder 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3986598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com