在后台进程后运行代码 - parse.com

2023-12-04

我的 viewController 中有一个 findObjectsInBackgroundWithBlock 方法。现在我想执行代码,但直到这个后台方法完成为止。我怎样才能做到这一点?

我正在使用 swift 编程语言。


这是一些可以帮助您的示例代码。目前尚不清楚如何限制代码(后台前代码)仅在后台处理完成时运行。您可能需要在通知响应函数中插入一些代码,以确认 PRE-BACKGROUND CODE 已完成或终止它。

//  ParseTestViewController.swift

import UIKit
import Foundation
import Parse

class ParseTestViewController: UIViewController {
var userData = [String]()

func codeToExecuteBeforeStringsAreAppended() {
}
func codeToExecuteAfterStringsAreAppended() {
    // can use the array 'userData'
}

override func viewDidLoad() {
    NSNotificationCenter.defaultCenter().addObserver(self,
        selector: "notificationResponse:",
        name: "recordsLoaded",
        object: nil
    )

    self.getUserdataForUsername("MyName")
    /* ==========================
    Insert code tto be executed immediately after making the call that must not use the data returned by Parse. The function returns right away and the background may not have completed.
    */
    codeToExecuteBeforeStringsAreAppended()
}
func getUserdataForUsername (queryUserName: String) {
    var query = PFQuery(className:"UserData")
    query.whereKey("username", equalTo: queryUserName)
    let notification = NSNotification(name: "userDataRetrieved", object: self)
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void in

        if error == nil {
            for object in objects! {
                if let username = object["username"] as? String {
                    self.userData.append (username)
                }
            }
        } else {
            // Log details of the failure
            println("Error: \(error!) \(error!.userInfo!)")
        }
        NSNotificationCenter.defaultCenter().postNotification(notification)

    }
}

func notificationResponse (notification: NSNotification) {


    // this is executed after the background processing is done
    // Insert the code that uses the data retrieved from Parse
        codeToExecuteAfterStringsAreAppended()
        NSNotificationCenter.defaultCenter().removeObserver(self)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在后台进程后运行代码 - parse.com 的相关文章

随机推荐

  • 为什么 eval('{a:23}') 给我的是 23 而不是 {a:23}?

    我在浏览器中有这段 JavaScript 代码 console log eval a 23 它打印 23 我原本期待看到 Object 有人可以解释一下吗 thanks 在这种背景下 开始一个block 不是对象字面量 a 那么是一个lab
  • .* 匹配 2 次

    我尝试过了match 用C 正则表达式 结果发现它匹配任何字符串两次 first the 完整的字符串 比第二次空字符串 我期望 在一场比赛中匹配所有内容 我完全困惑为什么会这样以及如何防止这种情况 长话短说 我需要替换部分文件名 并且可以
  • 如何在 C++ 中创建文件映射?

    我正在编写一个游戏预加载器 一个简单的程序 在启动程序之前将某些文件 映射 加载到缓存中 我被告知要使用CreateFileMapping 但我仍然不确定它将它加载到物理内存还是虚拟内存中 不管怎样 我应该把需要加载的文件放在哪里 这是我的
  • Jersey 和 HK2 - 注入当前用户

    我正在使用 jersey 2 17 和 HK2 创建一个简单的休息应用程序 我有一个ContainerRequestFilter拒绝任何没有 currentuser cookie 的请求 我有这样的事情 Path users public
  • 远程运行 python 脚本的更好方法

    我在远程计算机上有一个 python 脚本 我想从本地计算机执行该脚本 它接受一些参数 如果我要在那台机器上运行它 这就是我运行它的方式 python python parallel py num 10 ssh home user1 pat
  • Javascript生成具有特定字母数量的随机密码[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在客户端的网页中用 JavaScript 生成密码 密码应使用字母和数字 也许还有一些符号 如何在 Javascript 中安全地生成密码 由于密码需要是不可预测的 因此它需要由
  • 使用 CSS 而不是 jquery 将图像置于 div 中居中

    我试图将任何大小的图像放入 始终 方形 div 中 并在父 div 的大小发生变化时保留外观 这就是我正在做的 CSS photo container width 250px height 250px overflow hidden bor
  • 一个可重用的函数,使用 html5 canvas 将图像剪辑成多边形

    猜测帖子的标题可能需要编辑 但目前我不知道问题出在哪里 我在这里和其他地方阅读了类似问题的页面和答案 Stack Overflow 的一个答案特别接近 但我不明白 我想要一个函数 在画布上所需的坐标处绘制多边形 并用从文件加载的一些背景图像
  • 从现有 MongoDB 数据库创建 Django 模型

    我在 MongoDB 中有一些数据库 我想为其动态创建模型 因为数据库很多 我无法手动完成 问题 我的 models py 应该是什么样子 inspectdb 是否适用于 mongodb 数据库或仅适用于基于 SQL 的数据库 由于数据库模
  • 终止的线程恢复

    我将一堆线程对象存储在数组列表中 我希望能够随机启动这些线程 同一个线程可以启动多次 在启动线程对象之前 我检查线程是否处于活动状态 以及它们是否具有 NEW 或 TERMINATED 状态 这个限制是因为 我不想打扰 繁忙 的线程 现在
  • VirtualBox 中的 Neo4j 服务器:无法创建 rrd 存储

    我正在尝试运行我的 Virtualbox 中的 Neo4j 服务器正在运行 Ubuntu 这服务器文件和数据库位于我的 Windows 主机内并可访问通过共享文件夹 vboxsf 不幸的是 我无法轻松地将数据传输到虚拟机并直接在那里运行 由
  • Android异常:您是否忘记调用“public void setup(LocalActivityManager ActivityGroup)”

    MyCode public class MainActivity extends Activity Override protected void onCreate Bundle savedInstanceState super onCre
  • PHP 时间戳直到“几小时前”的麻烦

    我需要确定我们网站上发布的评论的 时间之前 时间戳 我的老板希望它只显示到几个小时 因此它应该显示 48 小时前 而不是 2 天前 或 480 小时而不是 20 天前 这是我找到的代码 但直到几个小时我才知道如何做到这一点 date def
  • 禁用应用程序的 Android O 自动填充服务

    Android O 有支持的功能自动填充对于字段 有什么方法可以针对特定应用程序禁用它 也就是说 我想强制我的应用程序不使用自动填充服务 是否可以 要阻止整个活动的自动填充 请在活动的 onCreate 中使用它 getWindow get
  • 自动完成时触发了任何事件吗?

    我有一个非常简单的表格 当用户在输入字段中键入内容时 我想更新他们在页面其他位置键入的内容 这一切都很好 我已将更新绑定到keyup change and click events 唯一的问题是 如果您从浏览器的自动完成框中选择输入 它不会
  • 从触发器调用包含动态 SQL 的存储过程

    我从触发器调用存储过程并收到以下错误 存储函数或触发器中不允许使用动态 SQL 为什么会发生这种情况 动态SQL是在存储过程中执行的 这是从触发器调用的 也许这就是问题所在 如果是的话有什么解决办法吗 编辑 添加代码 这是主表中的触发器 T
  • 如何在Excel VBA中根据行和列ID查找单元格值

    需要 VBA Sub 来根据行和列 ID 查找单元格值 在下面的示例中 我需要选择 East 和 RT3 相交处的值 即 80 A B C D E 1 null RT1 RT2 RT3 RT4 2 North 31 40 78 11 3 S
  • 在后台运行 cgi shell 脚本

    我有一个像这样的cgi shell脚本 bin sh show the page echo Content type text html echo echo b Hello world b the task I want to do in
  • 如何以像素增量滚动 DataGridView

    我最初的方法是将 DataGridView 包含在面板内 将其高度设置在面板边界之外 然后更改控制面板的滚动条位置 然而 我刚刚发现我的 DataGridView 内的行数将达到 2000 这迫使我将 DataGridView 的大小至少设
  • 在后台进程后运行代码 - parse.com

    我的 viewController 中有一个 findObjectsInBackgroundWithBlock 方法 现在我想执行代码 但直到这个后台方法完成为止 我怎样才能做到这一点 我正在使用 swift 编程语言 这是一些可以帮助您的