ios - 为什么 saveInBackgroundWithBlock 在我启用 Parse 的类中只工作*一次*?

标签 ios objective-c parse-platform

我有一个包含此代码的类,平均每分钟被调用几次,并且仅在主线程上运行:

        PFObject* eventObj = [PFObject objectWithClassName:@"AdminConsoleEvent"];
        eventObj[kACParseEventName] = event;
        eventObj[kACParseEventUrgency] = urgency;
        if( param1 )
            eventObj[kACParseEventParam1] = param1;
        eventObj[kACParseEventPointerToAdminConsole] = self.adminConsole;
        === [eventObj saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
           +++ if( !succeeded ) {
                //here
            }
        }];

如果我在 === 处放置一个断点,我会发现每次 eventObj 都是我所期望的......一个带有有效信息的非零对象。

如果我在+++ 所在的位置放置一个断点,那么我会发现它只被击中一次——第一次调用此代码时。如果我查看 Parse 数据浏览器(在线),果然,只有第一个对象被保存(立即)!其余的永远不会出现。

到底为什么 block (+++) 没有为后续调用运行?为什么不保存其他对象?

最佳答案

好的,这修复了它......

[PFObject saveAllInBackground:@[eventObj, self.adminConsole] block:^(BOOL succeeded, NSError *error) {

我假设这是因为有一个循环引用:self.adminConsole 有一个为 eventObj 添加到它的引用,而 eventObj 有一个为 self.adminConsole 添加到它的引用。无论出于何种原因,如果我直接在对象上使用 saveInBackground,这对我来说会破坏 Parse。

关于ios - 为什么 saveInBackgroundWithBlock 在我启用 Parse 的类中只工作*一次*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712802/

相关文章:

iOS 关于retainCount

iOS 共享扩展 - loadItemForTypeIdentifier 调用返回 iOS11 中的文件 url 和 iOS12 中的文件内容

ios - Swift - 在 1 个 ViewController 中的 2 个 UIImageView 中显示两个单独的图像

objective-c - 访问照片库时的 Xcode SIGABRT

ios - AutoLayout上的ScrollView问题(Xcode 6)

ios - iOS:安装Parse 1.7.1错误:找不到'FBSDKCoreKit/FBSDKAccessToken.h'文件

ios - 如何快速循环保存在后台

ios - Xcode 4.2 每次停止模拟器后都会跳转到 main.m

ios - 链接器命令失败,退出代码为 1 xcode 6.4

iphone - PBKDF2-HMAC-SHA256 Objective-C 实现