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

如何在Swift中制作类方法/属性?

杜成和
2023-03-14
问题内容

使用+in声明完成了Objective-C中的类(或静态)方法。

@interface MyClass : NSObject

+ (void)aClassMethod;
- (void)anInstanceMethod;

@end

如何在Swift中实现?


问题答案:

它们被称为
类型属性


类型方法

,您可以使用classstatic关键字。

class Foo {
    var name: String?           // instance property
    static var all = [Foo]()    // static type property
    class var comp: Int {       // computed type property
        return 42
    }

    class func alert() {        // type method
        print("There are \(all.count) foos")
    }
}

Foo.alert()       // There are 0 foos
let f = Foo()
Foo.all.append(f)
Foo.alert()       // There are 1 foos


 类似资料:
  • 问题内容: 我想在Swift中编写一个方法。在这里,我在Objective-C中初始化一个类: 如何在Swift中编写此方法? 问题答案: 我想这可能是您上课的良好基础 我想避免将键复制粘贴到项目中,因此我将可能的键放入这样的示例中: 并且您可以像这样改进您的方法,并且将来您可以避免代码中任何可能的键错误: 注意:那只是如何做的一个原始想法,根本不需要使用便捷的初始化程序,但是对于我对您的最终课程

  • 问题内容: 是否可以在Swift中遍历结构的属性? 我需要在使用许多不同单元格类型的视图控制器中注册单元格重用标识符(单元格组织在不同的nib文件中)。所以我的想法是将所有重用标识符和对应的nib文件作为静态元组属性(reuseID,nibName)放入结构中。但是,如何遍历所有这些元素以将单元格注册到tableView? 我已经尝试过一些东西(请参阅下面的答案)。但是有没有更简单的方法来做到这一

  • 问题内容: 我有两个VC:VC1和VC2。在VC1中,我有一个以编程方式制作的,并且我想传递给VC2。 我知道如何在情节提要中制作Segue,但由于这是通过编程方式制作的,因此目前我不能这样做。 如果我想使用segue传递结果数组,是否有办法以编程方式进行segue?如果这不可能,我是否应该只使用VC2 并设置一个委托来传递? 问题答案: 您可以像在此答案中建议的那样进行操作: Instantia

  • 问题内容: 我有一个问题要从中的结构数组。我搜索了,没有任何帮助(这里是屏幕截图)。我有一个这样的: 以及该结构的数组: 当数组不为空时,然后我尝试在另一个类中打印它,它在调试器中显示: 数组无效。如何使其成为有效对象?而且我想知道“ app.cartclass.ProductObject”这一部分是否有问题,以使其有效? 编辑: 这是我序列化为的方法: 问题答案: 如果要从自定义对象生成JSON

  • 本文向大家介绍如何在JavaScript中将函数属性作为方法访问?,包括了如何在JavaScript中将函数属性作为方法访问?的使用技巧和注意事项,需要的朋友参考一下 作为方法访问函数  一个javascript对象由属性组成。要将属性作为方法进行访问,只需将一个函数定义为一个属性,然后在该函数中包含其他属性。 在下面的示例中,创建了一个名为“员工”的对象,其属性为“ fullName”,“ la

  • 问题内容: 在属性内处理此时- 和- 之间有什么区别? 从我的角度来看,它们两者都可以为属性设置值。什么时候,为什么,我应该使用- ,什么时候- ? 我知道for 和的结构如下: 问题答案: 什么时候以及为什么要使用willSet / didSet 在值存储 之前 被调用。 新值存储 后 立即调用。 考虑带有输出的示例: 输出: 它像前/后条件一样工作 另一方面,如果要添加例如只读属性,则可以使用