当前位置: 首页 > 面试题库 >

相当于@ property / @ synthesize

薄伟彦
2023-03-14
问题内容

我们曾经声明property要在类之间传递数据,如下所示:

.h file (interface file)
@property (nonatomic) double topSpeed;

.m file (implementation file)
@synthesize topSpeed;

现在没有interface类,如何在.swift类之间传递数据?


问题答案:

Swift不区分属性和实例变量(即属性的基础存储)。要定义属性,只需在类的上下文中声明一个变量。

swift类只是ClassName.swift文件。

您将一个类和属性声明为

class SomeClass {

  var topSpeed: Double
  var aStrProperty: String
  var anIntProperty: Int

  //Initializers and other functions

}

您可以通过点表示法访问属性值。作为Xcode6测试4的,也有访问修饰符(publicinternalprivate在SWIFT)。默认情况下,每个属性都是internal。有关更多信息,请参见此处。

有关更多信息,请参阅《Swift编程指南》:

存储的属性和实例变量

如果您有使用Objective-
C的经验,您可能会知道它提供了两种将值和引用存储为类实例的一部分的方法。除了属性之外,您还可以将实例变量用作存储在属性中的值的后备存储

Swift将这些概念统一为一个属性声明。Swift属性没有相应的实例变量,并且不能直接访问该属性的后备存储。这种方法避免了在不同的上下文中如何访问值的困惑,并将属性的声明简化为单个确定的语句。有关属性的所有信息(包括名称,类型和内存管理特性)都在单个位置中定义,作为类型定义的一部分。



 类似资料:
  • 问题内容: 我有这个装饰器: 该代码仅能在linux上执行任何操作,就像在Windows上一样。在Windows中也可以使用此代码的最简单方法是什么? 问题答案: 它不是很漂亮,但是我不得不以跨平台的方式做类似的事情,于是我想到了使用单独的线程。基于信号的系统无法在所有平台上可靠地工作。 此类的使用可以包装在装饰器中,也可以制成上下文处理程序。 YMMV。

  • 问题内容: 我正在将一些旧的PHP代码从mysql移植到MySQLi,但遇到了一个小问题。 有没有等效的旧功能? 当您处理多于1行时,我知道它比其他函数要慢,但是很多时候我只有1个结果和1个字段。使用它,我可以将4行压缩为1行。 旧代码: 所需代码: 但是没有这样的事情。:( 有什么我想念的吗?还是我必须吸收它并制作所有东西: 问题答案: PHP 5.4现在支持函数数组解引用,这意味着您可以执行以

  • 在我的应用程序中,我必须从主应用程序线程异步处理多个作业,并收集每个作业的结果。我有一个简单的Java解决方案,它使用ExecutorService和收集作业结果的ExecutorCompletionService来实现这一点。 现在我想把我的代码转换成Spring解决方案。这些文档向我展示了ExecutorService和@Async注释的使用方式,但我不确定如何以及是否可以收集多个作业的结果。

  • 问题内容: 我知道(其中e是一个异常)会打印发生的异常,但是,我试图找到与Java等效的python,它可以将异常确切地跟踪到发生的那一行,并打印出整个轨迹。 谁能告诉我Python 的等效功能吗? 问题答案: 在块内执行此操作时,它将自动使用当前异常。有关更多信息,请参见http://docs.python.org/library/traceback.html。

  • 问题内容: 从Java世界进入C#,是否有等效的HashMap?如果没有,您会推荐什么? 问题答案: 可能是最接近的。实现接口(类似于Java的接口)。 您应该注意一些明显的区别: 添加/获取项目 Java的HashMap具有用于设置/获取项目的和方法 C#的词典使用索引来设置/获取项目 键 Java 允许空键 如果您尝试添加空键,.NET会引发 添加重复密钥 Java 将用新值替换现有值。 如果

  • 问题内容: 是否有与 @Primary 等效的XML ,可以提升多个合格Bean之一 示例场景: 我有一个启用了自动配置功能的spring-boot应用程序。我已经定义了多个数据源,但是spring无法选择其中一个数据源作为其默认值。 datasources.xml 问题答案: 属性具有属性: 并记住: 如果通过XML声明了-annotated类,则注释元数据将被忽略,而是被尊重。