我将按照Apple为iOS新手提供的三个教程进行学习。从我收集的内容来看,前两个似乎非常严格地遵循了一些准则,这些准则符合Objective-C的最新增强功能和推荐的编码习惯,但是第三个似乎没有。

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

  • 它明确告诉您为所有已声明的属性调用@synthesize。只要您不在乎自定义后备变量的名称,这不是不必要的吗?
  • 它告诉您进行方法的前向声明。编译器仍然需要吗?什么时候不需要前向声明?
  • 它经常使用直接访问的实例变量,而不是使用属性。属性不是首选的数据存储方法吗?什么时候最好避免使用属性?我猜想他们这样做是为了创建 private 变量。本教程中没有使用匿名类别,因此也许在编写本教程后才可用。

  • 我认为还有更多。只是要确保我在这里不会错过一些有关工具带的潜在技术,以避开现代Objective-C的不良习惯。末尾的精美图片表明它已于2013年4月进行了更新,但也许他们没有费心去更新所有代码样式。

    最佳答案

    他们可能只是没有更新代码样式。而且,Apple示例代码的样式通常非常不同。关于具体问题:

  • 现在通常是不必要的-但是在某些情况下,例如,当类符合协议中声明的属性时。
  • 在同一文件中,已实现但未在其他位置声明的方法是可见的。通常,仅在必须从类外部调用方法时才需要在标头中声明方法。
  • 我想使用实例变量可能只是个问题。在dealloc和初始化程序中,通常建议直接使用ivars,以防属性实现中产生副作用。
  • 关于ios - iOS教程“您的第三个iOS应用:iCloud”是否过时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18627174/

    10-11 22:44
    查看更多