필자는 UserData.plist에 새 데이터를 다시 작성하는 데 너무 가깝지만 쓸 수 있도록 새 데이터 사전을 올바르게 만드는 데 문제가 있습니다.이 데이터를 내 Plist에 어떻게 기록합니까? - Swift
func saveTriggerData(){
//get current date
let date = NSDate()
//for each trigger, insert date,value
for (index,trigger) in enumerate(triggersList){
//if trigger already exists in userData, just add a new date, value
if(triggersData[trigger] != nil){
NSLog("Trigger " + trigger + " exists")
//get value of corresponding stepper
var value = Int(steppersList[index].value)
//get previous data for this trigger
//make a dictionary of new data
var newData: [NSDate: NSNumber] = [date: value]
triggersData.addEntriesFromDictionary(newData)
//insert new data
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray
let documentsDirectory = paths.objectAtIndex(0) as NSString
let path = NSBundle.mainBundle().pathForResource("UserData", ofType: "plist")
//replace dict's Triggers value with our new Triggers
NSLog("\(userData)")
//userData.setObject(triggersData, forKey:"Triggers")
//let fileWritten = userData.writeToFile(path!, atomically: true)
//NSLog("Save trigger data: \(fileWritten)")
}
else{ //trigger does not yes exist in userData, add trigger name and then its date, value
NSLog("Trigger " + trigger + " does not yet exist")
}
}
}
결과 :
Triggers = {
"Caffeinated Drinks" = (
(
"2014-12-03 16:30:22 +0000",
2
),
(
"2014-12-04 16:30:02 +0000",
1
)
);
"Alcoholic Drinks" = (
(
"2014-12-03 16:28:53 +0000",
3
),
(
"2014-12-04 16:29:33 +0000",
0
)
);
"2014-12-15 23:36:53 +0000" = 0;
};
}
마지막 줄 "2014년 12월 15일 23시 36분 53초 0000"= 0;은 Alcoholic Drinks의 자녀가되어야합니다. 그래서 나는 가깝지만 아직 그곳에있는 것은 아니며, 나는 그것에 대해 미쳐 가고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다.
아, 그리고 PLIST :
<key>Triggers</key>
<dict>
<key>Alcoholic Drinks</key>
<array>
<array>
<date>2014-12-03T16:28:53Z</date>
<integer>3</integer>
</array>
<array>
<date>2014-12-04T16:29:33Z</date>
<integer>0</integer>
</array>
</array>
<key>Caffeinated Drinks</key>
<array>
<array>
<date>2014-12-03T16:30:22Z</date>
<integer>2</integer>
</array>
<array>
<date>2014-12-04T16:30:02Z</date>
<integer>1</integer>
</array>
</array>
</dict>
도움 주셔서 감사합니다. 그러나 "AnyObject '가 두 번째 줄의 [[AnyObject]]로 변환 할 수 없다는 오류가 나타납니다. –
나는 triggersData가 [String : [[AnyObject]]] 였다고 추측했으나 그 오류는 [String : AnyObject]임을 의미합니다. 그에 따라 내 대답을 수정합니다. – pbasdf
감사합니다. 그것은 그것을 고쳤다. –