gpt4 book ai didi

ios - 如何实现云代码?

转载 作者:行者123 更新时间:2023-11-29 01:21:51 26 4
gpt4 key购买 nike

我是云代码的新手,遇到了麻烦。我已经提到这个 How to prevent duplicate entry on parse?我正在尝试做同样的事情。我试图防止在我的类(class)中出现重复条目​​。即使类是空的,我仍然在云代码中收到错误“Song already exists”。

这是云代码。我对 querySongs.equalTo("title", newEntrySong.get("title")); 正在做什么感到困惑。它是在寻找实际的单词标题吗?因为我需要它来找到特定的标题。

Parse.Cloud.beforeSave("Pointer", function(request, response) {

var newEntrySong = request.object;

var querySongs = new Parse.Query("Pointer");
querySongs.equalTo("title", newEntrySong.get("title"));
//querySongs.equalTo("description", newEntrySong.get("description"));

// this could be a sort of signature for your song, to make more unique (skipping spaces and new lines for example)
// querySongs.equalTo("md5Title", newEntrySong.get("md5Title"));
querySongs.first({
success: function(temp) {
response.error({errorCode:123,errorMsg:"Song already exist!"});
},
error: function(error) {
response.success();
}
});
});

下面是我在类里面查找重复项的代码,但效果不佳。我需要更换整个东西吗?或者摆脱它?因为我有云代码

 func getNowPlayingItem() {

print("entered function")
NSNotificationCenter.defaultCenter().removeObserver(self)

if let nowPlaying = musicPlayer.nowPlayingItem {
let title = nowPlaying[MPMediaItemPropertyTitle] as? String
let artisttest = nowPlaying[MPMediaItemPropertyTitle]
if let artist = nowPlaying[MPMediaItemPropertyArtist] as? String{

let objectPointer = PFObject(className: "Pointer")
let object = PFObject(className: "MasterSongs")


let query = PFQuery(className: "Pointer")
query.findObjectsInBackgroundWithBlock({
(objects: [AnyObject]?, error: NSError?) -> Void in
var objectIDs = objects as! [PFObject]

for i in 0...objectIDs.count-1{
self.Parsearray.append((objectIDs[i].valueForKey("title") as? String)!)

}


if self.Parsearray.contains(title!){
print("already in db")
NSNotificationCenter.defaultCenter().addObserver(self, selector: "getNowPlayingItem", name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification, object: nil)
}else{
objectPointer["title"] = title
objectPointer["user"] = PFUser.currentUser()
objectPointer["artist"] = artist
print("about to save with artist")
objectPointer.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
if(error != nil){
print(error)
}else{
NSNotificationCenter.defaultCenter().addObserver(self, selector: "getNowPlayingItem", name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification, object: nil)
print("saved")
}

})



}

})




}else{


let objectPointer = PFObject(className: "Pointer")


let query = PFQuery(className: "Pointer")
query.findObjectsInBackgroundWithBlock({
(objects: [AnyObject]?, error: NSError?) -> Void in
var objectIDs = objects as! [PFObject]

for i in 0...objectIDs.count-1{
self.Parsearray.append((objectIDs[i].valueForKey("title") as? String)!)

// print(self.Parsearray)
}


if self.Parsearray.contains(title!){
print("already in db with no artist")
NSNotificationCenter.defaultCenter().addObserver(self, selector: "getNowPlayingItem", name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification, object: nil)
}else{
objectPointer["title"] = title
objectPointer["user"] = PFUser.currentUser()
objectPointer["artist"] = "No artist found :("
print("about to save")
objectPointer.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in

if(error != nil){
print(error)
}else{
NSNotificationCenter.defaultCenter().addObserver(self, selector: "getNowPlayingItem", name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification, object: nil)
print("saved")
}

})


}

})





}


}

}

最佳答案

OP 的 beforeSave 函数无法检查查询是否识别出重复项。如所写,它总是报告重复,但可以简单地修复...

var newEntrySong = request.object;
var querySongs = new Parse.Query("Pointer");
querySongs.equalTo("title", newEntrySong.get("title"));
// whatever else you want to do that defines a duplicate

querySongs.first().then(function(result) {
// this is the check the code was missing
if (result) {
response.error({errorCode:123,errorMsg:"Song already exist!"});
} else {
response.success();
}
}, function(error) {
response.error(error);
})

如果您有此工作来防止重复,则客户端代码无需执行相同的操作。

关于ios - 如何实现云代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com