Ищете помощь. У меня есть сам объявленный объект, где у меня есть две даты и примечания свойств. в коде, указанном ниже, могут быть указаны в объекте с инстанцированным объектом, но примечание не может. Есть идеи?«AnyObject» не имеет члена с именем «note»
Это подробный контроллер, где есть ошибки. Строки 10 и 20.
import UIKit
class DetailViewController: UIViewController {
@IBOutlet weak var tView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tView.text = allNotes[currentNoteIndex].note
tView.becomeFirstResponder()
}
override func viewDidDisappear(animated: Bool) {
super.viewWillDisappear(animated)
if tView.text == "" {
allNotes.removeObjectAtIndex(currentNoteIndex)
}
else {
allNotes[currentNoteIndex].note = tView.text
}
Note.saveNotes()
noteTable?.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Вот файл note.swift, в котором вы можете увидеть переменные.
import UIKit
var allNotes:NSMutableArray = []
var currentNoteIndex:Int = -1
var noteTable:UITableView?
let KAllNotes:String = "notes"
class Note: NSObject {
var date:String
var note:String
override init() {
date = NSDate().description
note = ""
}
func dictionary() -> NSDictionary {
return ["note":note, "date":date]
}
class func saveNotes() {
var aDictionaries:NSMutableArray = []
for var i:Int = 0; i < allNotes.count; i++ {
aDictionaries.addObject(allNotes[i].dictionary())
}
// NSUserDefaults.standardUserDefaults().setObject(aDictionaries, forKey: KAllNotes)
aDictionaries.writeToFile(filePath(), atomically: true)
}
class func loadnotes() {
var defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
// var savedData:[NSDictionary]? = defaults.objectForKey(KAllNotes) as? [NSDictionary]
var savedData:NSArray? = NSArray(contentsOfFile: filePath())
if let data:NSArray = savedData {
for var i:Int = 0; i < data.count; i++ {
var n:Note = Note()
n.setValuesForKeysWithDictionary(data[i] as! [NSDictionary : AnyObject])
allNotes.addObject(n)
}
}
}
class func filePath() -> String {
var d:[String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if let directories:[String] = d {
var docsDirectory:String = directories[0]
var path:String = docsDirectory.stringByAppendingPathComponent("\(KAllNotes).notes")
return path;
}
return ""
}
}
Это происходит потому, что вы используете NSMutableArray хранить ваши заметки, которые не печатаются. Итак, у вас есть два варианта. 1. Сохраните заметки в массиве Swift типа «Array' ('[Note]'). 2. Перед тем как перейти к его свойствам, отправьте свой объект в виде примечания. Я также предлагаю хранить ваши заметки альтернативным способом вместо использования глобальных переменных. –
Ian