Swift - PFObject 从保存回调而不是布尔返回自身

Posted

技术标签:

【中文标题】Swift - PFObject 从保存回调而不是布尔返回自身【英文标题】:Swift - PFObject return itself from save calback instead of bool 【发布时间】:2021-06-12 05:29:26 【问题描述】:

只是想知道我是否可以在后台保存解析 PFObject 并在回调中返回它而不是 Bool

parseObject.saveInBackground 
                  (success: Bool, error: Error?) in
                  if (success) 
                    completion(.success(true))
                   else 
                    let error = NSError(domain: "OURTEAM", code: 0, userInfo: [NSLocalizedDescriptionKey: "Save invoice failure"])
                    completion(.failure(error))
                  
                

还是我需要再从远程重新获取一次对象?

【问题讨论】:

是的。这是你的代码。如果愿意,您可以将传递给completionResult 声明为Result<PFObject,Error> @Paulw11 感谢 cmets 但 saveInBackground 有这个定义:typedef void (^PFBooleanResultBlock)(BOOL succeeded, NSError *_Nullable error); 你没有改变 saveInBackground - 你正在改变 completion 的签名 - 大概是传递给调用 saveInBackground 的函数,所以 completion(.success(parseObject)) 哦,你的意思是我刚刚在后台保存的实例对象,这就是我要找的吗? 【参考方案1】:

当您已经拥有更新的实例时,我不明白为什么需要在回调中包含该对象。

例如,您保存的 parseObject 是回调完成后更新的实例,因此只需引用它即可。

您将看到在保存完成后,您之前在内存中的 parseObject 现在已被分配了一个对象(假设您创建了一个新对象并保存了)

【讨论】:

以上是关于Swift - PFObject 从保存回调而不是布尔返回自身的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中子类化 PFObject

如何在 iOS 中保存 PFObject 列表?

Swift - 'PFObject不能转换为NSString'

如何在 Swift 中“正确”保存 PFFile 并检索 url

最终使用 PFFile(解析本地数据存储)保存在 PFObject 上?

Swift:Xcode 6.1.1 更改由代码块执行而不是按钮触发的视图