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))
还是我需要再从远程重新获取一次对象?
【问题讨论】:
是的。这是你的代码。如果愿意,您可以将传递给completion
的Result
声明为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不能转换为NSString'
如何在 Swift 中“正确”保存 PFFile 并检索 url