gpt4 book ai didi

ios - 在 IOS 中编写正确的 init 函数

转载 作者:行者123 更新时间:2023-11-29 03:41:37 25 4
gpt4 key购买 nike

这是我的 View Controller 的初始化函数:

- (id) initWithStartup: (NSDictionary *) _startup investor: (NSDictionary *) _investor chat_id: (NSString *) _chat_id chat_name: (NSString *) _name
{
self = [self initWithNibName: @"PLNewChatViewController" bundle: nil];

if(self)
{
}

return self;
}

以下情况是否正常/有必要:

    self = [self initWithNibName: @"PLNewChatViewController" bundle: nil];

xib 文件应该自动加载吗?

最佳答案

所以,问题名称:在 IOS 中编写正确的 init 函数

在子类中编码初始值设定项的规则:

  1. 您应该在指定初始化程序中调用 super 指定初始化程序
  2. 您应该从其他初始化程序调用您指定的初始化程序
  3. 为什么在方法名称和参数名称中使用“_”字符,在 Objective-C 中使用驼峰式大小写
  4. 你应该重写super指定的初始化器,它应该调用你指定的初始化器(因为客户端可以看到super的初始化器)
  5. 如果您对 UIView 进行子类化,则当随后从 nib 文件加载 View 对象时,不会调用指定的初始值设定项。所以你应该重写两个方法 initWithCoder: 和 - (id)initWithFrame:(CGRect)aRect
  6. 当您在初始化方法中调用类的某些方法时,它可能是不安全的。因为这些方法可以在您的类的子类中重写。 (你不能像 Java 那样将你的方法标记为 Final)所以要小心

https://developer.apple.com/library/ios/documentation/general/conceptual/devpedia-cocoacore/MultipleInitializers.html

https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/Initialization/Initialization.html

关于ios - 在 IOS 中编写正确的 init 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360066/

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