objective-c - 缺少 init 的后果?

标签 objective-c cocoa-touch cocoa init nsobject

在将一个编码非常糟糕的 iOS 项目移植到 OS X 的过程中,我特别注意保留模型层,以便(以后)能够使两个版本保持同步。

我目前无权更改 iOS 代码库 - 也不是特别想这样做。此外,对于所有的错误,模型层已经过测试并且可以正常工作。

他们说,如果它没坏就不要修理它。所以我想我的问题是,下面的代码坏了吗?请注意,在 alloc 之后没有调用 init,并且被实例化的类是 NSObject 的直接子类。

...
SuspectClass *obj = [SuspectClass alloc];
obj.arrayProperty = [NSArray arrayWith...];

// etc.
...

我想另一种提出问题的方式是 NSObjectinit 是否真的向对象添加了任何东西?

最佳答案

从 NSObject 的 init 文档中可以得到官方的回答:“一个对象只有在初始化后才能使用。”

...实际答案是:“NSObject 类中定义的 init 方法不进行初始化;它只是返回自身。”

:-)

尽管功能正常,但考虑到需要某种形式的 init 的警告位置的数量,我认为我不会相信裸露的 alloc

关于objective-c - 缺少 init 的后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10398252/

相关文章:

objective-c - 用数组替换数组

ios - iOS项目选择什么导航策略?

ios - 区分简体中文和繁体中文之间的事件语言

objective-c - 带 2 XIB 的旋转人像风景

xcode - NSDistributedNotifications 未在(相同)应用程序的实例之间分发

xcode - 我的 Mac OS X Cocoa 文档在哪里?

macos - 在 OS X 应用程序中以编程方式清除用户默认值

ios - 如何从 json 的本地文件检索数据到 Objective C iOS 中的字典

iphone - 两个 UITableViews 一个 UIViewController 的一部分 : Each with a delegates and data sources that are different objects

ios - 每个星期二的本地通知重复间隔不起作用..我错过了什么?