Objective-C运行时/ Xcode 4.2代码的最新更改

问题描述 投票:1回答:4

我刚开始学习Obj-C而且我有点困惑。我在Lynda.com上观看的视频是用Xcode 4创建的,但是有很多不同之处我觉得很难相信所有这些视频都发生在2点版本中。例如:

在视频中你可以写:

@property NSString * myString

它会很好,但现在在4.2它会抛出一个错误,除非你写的东西:

@property (nonatomic, retain) NSString * myString

此外,默认情况下,实现代码中不再有init或dealloc方法,并且NSAutoReleasePool的实现方式完全不同。是什么赋予了?

objective-c xcode4 xcode4.2
4个回答
2
投票

虽然我无法保证此列表是详尽无遗的,但您在网上发现的差异是:

  • Objective-C 1.0或2.0
  • 旧的或现代的运行时
  • 手动或自动参考计数

我个人对主要区别的看法是:

  • Objective-C 2.0带来了属性和合成访问器等
  • 现代运行时有一种不同的组织实例变量的方式(非脆弱的实例变量),但在日常开发工作中你可能不会注意到
  • 如果操作系统支持,现代运行时还允许64位应用程序
  • 自动引用计数允许您以遵循编码和命名约定的适度成本取消保留/释放代码

有更多的差异,但这些是我认为最重要的 - 个人我很少使用自动释放池,如果我理解正确,新语法不会改变功能。


1
投票

如果您使用“自动引用计数”选项“打开”创建项目,则不会有任何init或dealoc方法。


1
投票

在创建项目时 检查使用自动参考计数。


1
投票

创建项目时,可以选中“使用自动引用计数”选项。如果你检查这个,那么就不会有任何init或dealloc方法,因为Xcode会自动进行引用计数。

© www.soinside.com 2019 - 2024. All rights reserved.