在@ swift中@ property/@ synthesize等效

 mobiledu2502875393 发布于 2023-01-11 20:54

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

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

.m file (implementation file)
@synthesize topSpeed;

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

2 个回答
  • Swift不提供属性和实例变量之间的区别(即属性的底层存储).要定义属性,只需在类的上下文中声明变量即可.

    swift类只是一个ClassName.swift文件.

    您将类和属性声明为

    class SomeClass {
    
      var topSpeed: Double
      var aStrProperty: String
      var anIntProperty: Int
    
      //Initializers and other functions
    
    }
    

    您可以通过点表示法访问属性值.从Xcode6 beta 4开始,Swift中还有访问修饰符(public,internalprivate).默认情况下每个属性都是internal.有关更多信息,请参见此处

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

    存储的属性和实例变量

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

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

    2023-01-11 20:58 回答
  • 使用属性.

    从Swift编程指南:

    存储的属性和实例变量

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

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

    2023-01-11 20:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有