簡體   English   中英

Swift 3實例成員類型

[英]Swift 3 Instance member type

我有一個func saveNotes()這是NSObject的子類

Note.swift文件

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

當我嘗試運行項目時,出現錯誤“實例成員'saveNotes'不能用於'Note'類型;您的意思是改為使用此類型的值。

來自MasterViewControler.swift的代碼

import UIKit 
import Foundation


class MasterViewController: UITableViewController {

    var objects = NSMutableArray()

    override func viewDidLoad() {
        Note.loadNotes()
        print("allNotes: \(allNotes)")
        var n:Note = Note()
        Note.saveNotes()

不知道我在做什么錯。 謝謝你的幫助。

錯誤:

實例成員'saveNotes'不能用於'Note'類型; 您是不是要使用此類型的值。

由編譯器顯示,因為您試圖直接從類中調用非實例方法

因此,您將有兩種方法:

首先 :使用聲明的n實例調用saveNotes()函數:

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

第二 :如果您打算直接從Note類調用saveNotes() ,則應將其聲明為static方法:

static func saveNotes() { ... }

有關更多信息,您可以查看Swift文檔-方法 (“類型方法”部分)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM