Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是iOS教程吗;您的第三个iOS应用程序:iCloud;过时了?_Ios_Objective C - Fatal编程技术网

是iOS教程吗;您的第三个iOS应用程序:iCloud;过时了?

是iOS教程吗;您的第三个iOS应用程序:iCloud;过时了?,ios,objective-c,Ios,Objective C,下面我将介绍苹果为iOS新手提供的三个教程。从我收集的信息来看,前两个版本似乎非常符合最新的增强功能和Objective-C的推荐编码习惯,但第三个版本似乎没有 不确定链接是否有效: 它明确告诉您为所有声明的属性调用@synthesis。只要您不想自定义支持变量的名称,这难道不是不必要的吗 它告诉您进行方法的前向声明。编译器仍然需要这样做吗?什么时候不需要远期申报 它经常使用直接访问的实例变量,而不是使用属性。属性不是数据存储的首选方法吗?什么时候最好避免使用物业?我猜他们这样做可能是为了创建私

下面我将介绍苹果为iOS新手提供的三个教程。从我收集的信息来看,前两个版本似乎非常符合最新的增强功能和Objective-C的推荐编码习惯,但第三个版本似乎没有

不确定链接是否有效:

  • 它明确告诉您为所有声明的属性调用@synthesis。只要您不想自定义支持变量的名称,这难道不是不必要的吗

  • 它告诉您进行方法的前向声明。编译器仍然需要这样做吗?什么时候不需要远期申报

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

  • 我想还有更多。为了避免现代Objective-C中可能存在的坏习惯,我在这里尝试避免遗漏一些工具带的潜在技术。最后的小字说明它是在2013年4月更新的,但也许他们没有费心更新所有代码样式

  • 您不再需要手动合成属性
  • 不再需要实现文件中的转发声明
  • 有些人喜欢IVAR,有些人喜欢属性,只要确保您始终如一地使用它们
  • 您不再需要手动合成属性
  • 不再需要实现文件中的转发声明
  • 有些人喜欢IVAR,有些人喜欢属性,只要确保您始终如一地使用它们

  • 他们可能只是没有更新代码样式。此外,苹果的示例代码在风格上往往非常多样化。关于具体问题:

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

  • 在同一个文件中,已实现但未在别处声明的方法是可见的。通常,只有当必须从类外部调用方法时,才需要在头中声明方法

  • 我想,使用实例变量可能是一个趣味问题。在
    dealloc
    和初始值设定项中,通常建议直接使用IVAR,以防在属性实现中出现副作用


  • 他们可能只是没有更新代码样式。此外,苹果的示例代码在风格上往往非常多样化。关于具体问题:

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

  • 在同一个文件中,已实现但未在别处声明的方法是可见的。通常,只有当必须从类外部调用方法时,才需要在头中声明方法

  • 我想,使用实例变量可能是一个趣味问题。在
    dealloc
    和初始值设定项中,通常建议直接使用IVAR,以防在属性实现中出现副作用


  • 坚持到底,你的意思是坚持一个或另一个,还是只是小心不要混淆两者?我的意思是坚持一个或另一个,除非你有很好的理由不这样做。坚持到底,你的意思是坚持一个或另一个,还是只是小心不要混淆两者?我的意思是坚持一个或另一个,除非你有很好的理由不这样做。关于(2),如果@interface中没有声明方法,那么方法可以作为块的一部分安全地传递给其他类吗?@Tenfour04我想你是在问,如果你在一个文件中有一个块文字,它具有方法的可见性,你能将它传递给另一个将被调用的对象吗,即使调用块的代码范围不可见。当然,那完全没问题。块的语句体与其声明具有相同的作用域。调用块不要求了解块的原始作用域。关于(2),如果方法未在@interface中声明,是否可以作为块的一部分安全地传递给其他类?@Tenfour04我假设您在询问文件中是否有块文字,该文件具有方法的可见性,即使在调用块的代码范围内不可见,也可以将其传递给另一个将被调用的对象。当然,那完全没问题。块的语句体与其声明具有相同的作用域。调用块不要求了解块的原始范围。