小编Alp*_*ven的帖子

斯威夫特!不删除Optional()

之前,我已经成功添加了!强制unwrap从变量中删除"Optional()".我无法在Parse.com返回的数据中执行此操作

    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {

            for object in objects {
                println(object[myObject]!)
            }

        } else {
            println("Error: \(error) \(error.userInfo!)")
        }

    }
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,将返回Parse.com类中的整个表并将其打印到控制台.然而,

可选的(...)

即使我强行打开使用,也会为每一行返回!在末尾

我错过了什么?

(注意:myObject是Parse Class数据库中Column的名称)

asynchronous optional parse-platform swift

12
推荐指数
1
解决办法
1万
查看次数

Swift Async完成以返回自定义类中的Array

我将尽力解释这个问题.

我正在使用Parse.com并从Parse数据库类返回数据.我想把这个parse.com调用放在自定义类中的自己的函数中.我遇到的问题是完成.它去哪儿了?我已经尝试了很多不同版本的添加到我的功能,但它无法正常工作.

以下是获取类名,表名和排序描述符并返回数组的函数:

func queryDataInBackgroundWithBlock(parseClass:String, parseObject:String, sortDescriptor:NSSortDescriptor) -> [Any]
Run Code Online (Sandbox Code Playgroud)

当我添加完成时,我使用(可能不正确):

func queryDataInBackgroundWithBlock(parseClass:String, parseObject:String, sortDescriptor:NSSortDescriptor, completion: (result: Any)->Void)
Run Code Online (Sandbox Code Playgroud)

现在在函数内部,我使用Parse.com代码来获取数据

    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {

            // Do something with the found objects
            for object in objects {
                self.arrayOfObjects.append(object[parseObject]!)
            }

        } else {
            // Log details of the failure
            println("Error: \(error) \(error.userInfo!)")
        }

    }
Run Code Online (Sandbox Code Playgroud)

我的目标是将参数发送到我的类函数,从parse.com获取数据,然后在异步调用之后将数据作为数组返回

我想这样称呼它:

myClass.queryDataInBackgroundWithBlock("databaseName", parseObject: "columnName", sortDescriptor: orderBy){
    (result: Any) in
    println(result)
}
Run Code Online (Sandbox Code Playgroud)

这几乎就像是嵌套完成.完成后如何返回数组?是交给函数然后返回它,还是需要在嵌套代码中返回,或者是什么?它检索数据,但问题是完成后返回.

更新:正如我在下面的评论中所述:

query.findObjectsInBackgroundWithBlock({
    (objects: [AnyObject]!, error: NSError!) …
Run Code Online (Sandbox Code Playgroud)

arrays class block swift completion

5
推荐指数
1
解决办法
3296
查看次数

从Swift中的Block返回布尔值

我正在尝试使用Swift编写的Parse.我能够毫无困难地登录,但我正在努力告诉我的应用程序用户已登录.

我正在使用logInWithUsernameInBackground,如果登录成功,我只想返回一个布尔值.

我用的时候:

func authenticateUser() -> Bool{
    PFUser.logInWithUsernameInBackground(userName.text, password: passwordField.text, block: {
        (user,error) in
        return error === nil
    })
}
Run Code Online (Sandbox Code Playgroud)

我得到错误"Bool不能转换为Void"这是有道理的.

所以,如果我将第3行更改为:

(user,error) -> Bool in
Run Code Online (Sandbox Code Playgroud)

我最终得到错误"在调用中缺少参数选择器的参数"

但是,此方法不需要选择器参数.

那我哪里错了?如何根据登录时是否有错误返回bool?

boolean objective-c-blocks swift completion

3
推荐指数
1
解决办法
4668
查看次数