解释方法对数组

时间:2015-07-22 09:14:27

标签: swift function dictionary nsmutablearray

对编码不熟悉,为愚蠢的问题道歉。

我正在关注Swift教程,并编写了以下代码;创建一个名为Note的类,一个名为dictionary的方法和一个名为saveNotes的类方法。

我对最后一行感到困惑:aDictionaries.addObject(allNotes [i] .dictionary()

我知道我在aDictionaries数组上运行一个方法来添加一个对象,传入allNotes [i]。有人能解释一下.dictionary()函数究竟在做什么吗?它是否将数组allNotes转换为字典?是否将字典附加到数组allNotes?大概是它没有将数组allNotes转换成字典?这似乎不可能来自func词典里面的内容。或许我错了。

任何评论都会感激不尽。

var allNotes : NSMutableArray = [] 

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())
    }
    aDictionaries.writeToFile(filePath(), atomically: true)
}

2 个答案:

答案 0 :(得分:0)

aNote.dictionary()将注释日期和文本作为一个NSDictionary返回。您将此方法发送到单个注释,而不是数组。该方法返回单个NSDictionary。

您的代码等同于以下

...
class func saveNotes(){
   var aDictionaries:NSMutableArray = []
   for var i:Int = 0; i < allNotes.count; i++ {
      let noteAtIndexI = allNotes[i]
      let dictionaryForNoteAtIndexI = noteAtIndexI.dictionary()
      aDictionaries.addObject(dictionaryForNoteAtIndexI)
}
...

答案 1 :(得分:0)

   allNotes is an array of Note objects

    allNotes[i] gives you a single Note object  for index i

.dictionary() func returns NSDictionary of that Note Object:

{
 "note":"some Note",
 "date":"2015-07-22 09:51:35"
}