我找不到原因,当我想保存我如何得到一个错误Dictionary的NSUserDefaults.
有一个非常简单的类函数:
class func userLoggedIn(udid udid: String, username: String, email: String, userData: [String: AnyObject]) {
let userDataDictionary: NSDictionary = NSDictionary(dictionary: userData)
NSUserDefaults.standardUserDefaults().setObject(udid, forKey: UserDefaultsKeyType.UserUDID.rawValue)
NSUserDefaults.standardUserDefaults().setObject(username, forKey: UserDefaultsKeyType.Username.rawValue)
NSUserDefaults.standardUserDefaults().setObject(email, forKey: UserDefaultsKeyType.Email.rawValue)
NSUserDefaults.standardUserDefaults().setObject(userDataDictionary, forKey: UserDefaultsKeyType.UserData.rawValue)
NSUserDefaults.standardUserDefaults().synchronize()
}
Run Code Online (Sandbox Code Playgroud)
它创建的记录用户数据很少.不幸的是.UserData键有问题.过去几行代码我试图在该键上保存userData对象.但是在错误之后我添加了新的临时对象.在我尝试保存一些新数据后,我遇到了这个错误:
2016-10-31 18:45:04.564 ios_app[11679:194224] Attempt to set a non-property-list object {
account = 1;
email = "te@st.com";
emailVerified = 0;
firstName = test;
values = 0;
gender = "<null>";
description = string;
name = test;
permissions = (
"test_user_role"
);
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试在服务器上进行视频上传.我正在使用Alamofire.我正在接近一个解决方案,但是...我有一个多部分数据表单方法,其中包含这样的参数"param1":"test","param2":["1","2"],param3:{"测试":"123"}
param1仍然放置一个函数Alamofire.upload:
multipartFormData.appendBodyPart (date "test" .dataUsingEncoding (NSUTF8StringEncoding, allowLossyConversion: false) !, name: "param1")
Run Code Online (Sandbox Code Playgroud)
如何添加param2和param3?
有我的方法:
Alamofire.upload(
.POST,
url,
headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(data: "test".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"param1")
//it is only visualization what I want to do. I know that it isn't working.
//multipartFormData.appendBodyPart(data: ["1", "2"].dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"param2")
//multipartFormData.appendBodyPart(data: {"test": "123 "}.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, name :"param3")
let fileURL = DataManager().getFileDirectionForFile("movie.mp4")
multipartFormData.appendBodyPart(fileURL: fileURL, name: "file")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _): …Run Code Online (Sandbox Code Playgroud) 我对CAKeyframeAnimation有很大的问题.有一个功能可以在用户选择动画后创建所选动画.所有数据都在准备好的字典中.有一个代码:
//Prepare settings
let settings = dataManager.getFreeEffectsSettingsForFileName("")
//Set origin
let freeEffectOrigin = settings.objectForKey("freeEffectOrigin") as! [String: NSNumber]
let xOrigin: NSNumber = freeEffectOrigin["x"]! as NSNumber
let yOrigin: NSNumber = freeEffectOrigin["y"]! as NSNumber
//Set size
let freeEffectSize = settings.objectForKey("freeEffectSize") as! [String: NSNumber]
let widthSize: NSNumber = freeEffectSize["width"]! as NSNumber
let heightSize: NSNumber = freeEffectSize["height"]! as NSNumber
//Set frame with origin and size
freeEffectAnimationImage = UIImageView(frame: CGRectMake(CGFloat(xOrigin), CGFloat(yOrigin), CGFloat(widthSize), CGFloat(heightSize)))
freeEffectAnimationImage.image = dataManager.getFreeEffectsImagesForFileName("")[0] as? UIImage
//set begining point
let freeEffectBeginingPoint = settings.objectForKey("beginingPoint") as! [String: …Run Code Online (Sandbox Code Playgroud)