Swift 3实例成员类型

时间:2017-09-10 13:53:31

标签: ios swift

我有一个func saveNotes(),它是NSObject的子类

Note.swift文件

import {Dimensions} from 'react-native'

const {width, height} = Dimensions.get('window')

const style = StyleSheet.create({
  gridItem: width/2
})

当我尝试运行我的项目时,我收到错误"实例成员' saveNotes'不能用于类型'注意&#39 ;;你的意思是使用这种类型的值。

来自MasterViewControler.swift的

代码

func saveNotes() {
        var aDictionaries:[NSDictionary] = []
        for i:Int in 0 ..< allNotes.count {
            aDictionaries.append(allNotes[i].dictionary())
        }
        UserDefaults.standard.set(aDictionaries, forKey: kAllNotes)
    }

不确定我在这里做错了什么。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

错误:

  

实例成员'saveNotes'不能用于'Note'类型;你是否   意味着要使用这种类型的值。

由编译器显示,因为您试图直接从类中调用非实例方法

因此,您将有两种方法:

首先:使用声明的n实例来调用saveNotes()函数:

Note.loadNotes()
print("allNotes: \(allNotes)")
let n:Note = Note()
n.saveNotes()

第二次:如果您的目标是直接从saveNotes()班级致电Note,则应将其声明为 static 方法:

static func saveNotes() { ... }

有关详细信息,请查看Swift Documentation - Method(“类型方法”部分)。