iOS教程“你的第三个iOS应用程序:iCloud”是否过时了?

时间:2013-09-05 03:19:09

标签: ios objective-c

我正在关注Apple为iOS新手提供的三个教程。前两个似乎非常密切地遵循指南,从我收集到的,适合Objective-C的最新增强和推荐的编码习惯,但第三个似乎没有。

不确定链接是否有效:https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloud101

  1. 它明确告诉您为所有声明的属性调用@synthesize。只要您不关心自定义支持变量的名称,这不是不必要的吗?

  2. 它告诉您进行方法的前向声明。这仍然是编译器所需要的吗?何时不需要前瞻声明?

  3. 它经常使用直接访问的实例变量而不是使用属性。属性不是数据存储的首选方法吗?何时最好避免使用财产?我猜他们这样做是为了创建私有变量,也许。本教程中没有使用匿名类别,因此可能在编写教程后可以使用这些类别。

  4. 我认为还有更多。我想确保我不会错过这里的工具带的一些潜在技术,以避免现代Objective-C中可能存在的坏习惯。最后的细则显示它在2013年4月更新,但也许他们没有费心更新所有代码风格。

2 个答案:

答案 0 :(得分:2)

  1. 您不再需要手动@synthesize属性
  2. 不再需要执行文件中的前向声明。
  3. 有些人喜欢ivars,有些人喜欢属性,只是确保你一直使用它们。

答案 1 :(得分:2)

他们可能只是没有更新代码风格。此外,Apple样本代码的风格通常非常多样化。关于具体问题:

  1. 现在这通常是不必要的 - 但在某些情况下,例如,当一个类符合协议中声明的属性时。

  2. 在同一个文件中,可以看到已实现但未在其他地方声明的方法。通常,只有在必须从类外部调用方法时才需要声明头中的方法。

  3. 我认为使用实例变量可能是一个品味问题。在dealloc和初始化程序中,通常建议在属性实现中出现副作用时直接使用ivars。