发布我的代码here, was getting clipped below。
根据上面的代码,我在一个已知的文件路径位置sound.caf
创建一个名为soundfileURL
的音频文件。
我的问题是如何将此文件上传到Parse?如何从路径soundfileURL
中获取代码中的文件对象。
我下面的尝试显然需要工作。我还没有运行它,因为我不知道如何将sound.caf
转换为PFFile并上传到Parse。
func addNamestoParse(obj: Music) {
println("Doing Parse Stuff now")
self.showActivityIndicatory(true)
var className = PFObject(className: "musicrecording")
className.setObject(obj.name, forKey: "nameofmusic")
className.setObject(obj.createdOn, forKey: "datcreated")
如何转换SOUND.CAF文件以便在此处发布&上传到游戏?
className.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if success == true {
} else {
println(error)
}
}
}
感谢 David Jirman ,Objective-C等价物能够推断出Swift Equivalent。以下是代码。
func addNamestoParse(obj: Name) {
println("Doing Parse Stuff now")
var className = PFObject(className: "namerecordings")
className.setObject(obj.name, forKey: "babyname")
className.setObject(obj.nameSubmitter, forKey: "submittedby")
className.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if success == true {
let audioFile = PFFile(name: "mysound.caf", data: NSData(contentsOfURL: self.soundFileURL)!)
className["audioFile"] = audioFile
className.saveInBackgroundWithBlock{(success: Bool, error: NSError?) -> Void in
if success == false {
println("error in uploading audio file")
} else {
println("posted successfully")
}
}
} else {
println(error)
}
}
}
答案 0 :(得分:5)
在https://www.youtube.com/watch?v=4qj1piMAPE0的精彩教程之后,我的解决方案是在Swift中:
let path = getCacheDirectory().stringByAppendingPathComponent(fileName)
let filePath = NSURL(fileURLWithPath: path)
var dataToUpload : NSData = NSData(contentsOfURL: filePath!)!
let soundFile = PFFile(name: fileName, data: dataToUpload)
var userSound = PFObject(className:"upload")
userSound["name"] = "Sara"
userSound["sound"] = soundFile
userSound.saveInBackground()
其中getCacheDirectory()是教程中使用的函数
答案 1 :(得分:4)
我对斯威夫特并不熟悉,而是采用了旧的方式"原则应该是一样的。你需要创建一个' PFFile'并将其分配给您的音乐录制的相应PFFile属性'类。例如:
PFFile *pfFile = [PFFile fileWithData:data];
PFObject *pfObject = [PFObject objectWithClassName:@"musicrecording"];
[pfObject setObject:pfFile forKey:@"musicFile"];
[pfObject saveInBackground];
保存包含PFFile对象的对象时,它会自动上传。这有帮助吗?