如何在Swift类中将变量设置为self(class)?iOS Xcode

P

我有一个叫做Node的类。当我初始化Node时,我希望它的上一个节点和下一个节点始终指向自身-使节点循环不断。

class Node {
    var name: String!
    var previousNode: Node = self // error 
    var nextNode: Node = self     // error

    init?(name: String) {
        if name.isEmpty {
            return nil
        }
        self.name = name
    }

    func setPreviousNode(prevNode: Node) {
        self.previousNode = prevNode
    }

    func setNextNode(nextNode: Node) {
        self.nextNode = nextNode
    }
}

如何在课堂上自动将变量分配给self

空速

由于self在初始化所有self属性之前无法引用,因此您必须采用两阶段方法并使用init–但还需要使节点成为可选节点,因为您需要先将它们设置为某些值(例如nil),然后在设置了所有self的属性(包括它们)之后,将它们再次设置为self。

您可以采用与使用时相同的方法,name并在以后为方便起见而使它们隐式为可选,只要您小心确保它们永远不会出现nil

class Node {
    var name: String!
    var previousNode: Node!
    var nextNode: Node!

    init?(name: String) {
        if name.isEmpty {
            return nil
        }
        self.name = name
        previousNode = self
        previousNode = self
    }

    // since this takes a `Node` not a `Node?` you know
    // it can’t set them to nil, which is good
    func setPreviousNode(prevNode: Node) {
        self.previousNode = prevNode
    }

    func setNextNode(nextNode: Node) {
        self.nextNode = nextNode
    }
}

let node = Node(name: "fred")  
// good to know the playground printing code checks for cycles!
// {name "fred" {name "fred" {…} nil} nil}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Xcode 4.6中将iOS Simulator上的设备设置为iPhone 5?

来自分类Dev

如何在Xcode 11(Swift)中将文本字段的内容转换为变量?

来自分类Dev

iOS XCode - 为 Profile 构建时找不到 Swift 类

来自分类Dev

如何在Xcode中将变量附加到字符串

来自分类Dev

如何在Swift(iOS,Xcode)中将NSDictionary转换为Json String?

来自分类Dev

如何在Swift Xcode中为所有设备在整个屏幕上设置边框?

来自分类Dev

如何在Swift / Xcode中为imageview数组设置水龙头

来自分类Dev

如何在 Swift、XCode 中为 Collection View 设置自定义水平滚动?

来自分类Dev

如何在aps-environment设置为“ production”的情况下运行iOS应用(Xcode 6)?

来自分类Dev

如何在xcode IDE中为图像设置按钮大小?

来自分类Dev

如何在Xcode中为tvOS应用设置应用图标

来自分类Dev

如何在xcode IDE中为图像设置按钮大小?

来自分类Dev

如何在Xcode中为Cocoa App设置启动参数?

来自分类Dev

如何在 Xcode 中为 Eigen 库设置搜索路径

来自分类Dev

如何在 xcode ios Swift 中为表格视图后面的视图着色?

来自分类Dev

如何在编译时基于 ios 版本在 swift 代码中导入类(无需在 Xcode 中设置标志或使用弱链接)?

来自分类Dev

如何在XCode 7的情节提要中将视图高度设置为屏幕高度的百分比

来自分类Dev

如何在iOS XCode中为JSON定义结构?

来自分类Dev

如何在iOS Xcode Swift Playground上模拟黑暗模式

来自分类Dev

在xcode中设置变量约束

来自分类Dev

如何在Xcode中分离文件类

来自分类Dev

如何在Xcode中设置屏幕截图?

来自分类Dev

如何在XCode上设置jsoncpp库?

来自分类Dev

如何在Xcode中设置屏幕截图?

来自分类Dev

如何在Xcode上设置构建配置?

来自分类Dev

如何在XCode中使每个构建变量

来自分类Dev

将Xcode 5降级为Xcode 4.6.1

来自分类Dev

将Xcode 5降级为Xcode 4.6.1

来自分类Dev

如何在Swift中将星期几设置为变量?

Related 相关文章

  1. 1

    如何在Xcode 4.6中将iOS Simulator上的设备设置为iPhone 5?

  2. 2

    如何在Xcode 11(Swift)中将文本字段的内容转换为变量?

  3. 3

    iOS XCode - 为 Profile 构建时找不到 Swift 类

  4. 4

    如何在Xcode中将变量附加到字符串

  5. 5

    如何在Swift(iOS,Xcode)中将NSDictionary转换为Json String?

  6. 6

    如何在Swift Xcode中为所有设备在整个屏幕上设置边框?

  7. 7

    如何在Swift / Xcode中为imageview数组设置水龙头

  8. 8

    如何在 Swift、XCode 中为 Collection View 设置自定义水平滚动?

  9. 9

    如何在aps-environment设置为“ production”的情况下运行iOS应用(Xcode 6)?

  10. 10

    如何在xcode IDE中为图像设置按钮大小?

  11. 11

    如何在Xcode中为tvOS应用设置应用图标

  12. 12

    如何在xcode IDE中为图像设置按钮大小?

  13. 13

    如何在Xcode中为Cocoa App设置启动参数?

  14. 14

    如何在 Xcode 中为 Eigen 库设置搜索路径

  15. 15

    如何在 xcode ios Swift 中为表格视图后面的视图着色?

  16. 16

    如何在编译时基于 ios 版本在 swift 代码中导入类(无需在 Xcode 中设置标志或使用弱链接)?

  17. 17

    如何在XCode 7的情节提要中将视图高度设置为屏幕高度的百分比

  18. 18

    如何在iOS XCode中为JSON定义结构?

  19. 19

    如何在iOS Xcode Swift Playground上模拟黑暗模式

  20. 20

    在xcode中设置变量约束

  21. 21

    如何在Xcode中分离文件类

  22. 22

    如何在Xcode中设置屏幕截图?

  23. 23

    如何在XCode上设置jsoncpp库?

  24. 24

    如何在Xcode中设置屏幕截图?

  25. 25

    如何在Xcode上设置构建配置?

  26. 26

    如何在XCode中使每个构建变量

  27. 27

    将Xcode 5降级为Xcode 4.6.1

  28. 28

    将Xcode 5降级为Xcode 4.6.1

  29. 29

    如何在Swift中将星期几设置为变量?

热门标签

归档