Swift,解析和Xcode 6 beta6

汤姆-Lunabee.com

我对Parse的查询现在在Xcode 6 beta6中引发了快速的编译器错误(请参见下面的错误)。以前运行良好(我的示例很简单,来自Parse的文档)。我已经更改了Xcode 6 beta 6中的一件事:来自“对象:AnyObject []!”。改为“对象:[AnyObject]!” (由于错误“数组类型现在在元素类型的括号内写入了”)

query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if !(error != nil) {
            NSLog("Successfully retrieved \(objects.count) objects.")
            for object : PFObject! in objects { ... } ...

//错误:无法将类型[AnyObject]隐式向下转换为'PFObject',您是要使用'as'来强制向下转换吗?

而且,如果我按照上一个错误的建议强行进行下调,则会收到另一个错误:

for object : PFObject! in objects as PFObject {
       ...
}

//错误:类型PFObject不符合协议SequenceType

如果我更改对象:[AnyObject]!对象:[PFObject]!我收到以下错误:

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

//错误:AnyObject与PFObject不同

解决编译器问题的答案

正确答案如下(Xcode建议将向下转换为PFObject,而向下转换位于“对象”(数组)上):

for object : PFObject! in objects as [PFObject] {
       ...
}

执行时间已更新正确答案

上面的答案是解决编译器问题,而不是执行问题。与Parse聊天之后,由于beta 6已发布,他们的文档不是最新的。要循环查询返回的PFObjects对象,只需对对象{}中的对象执行“ for”:

 query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]!, error: NSError!) -> Void in
        if (error == nil) {
           for object in objects {
            ...
            } ...
 }
洛根

我认为您正在尝试降低阵列的质量。如果您更改此设置,将会发生什么:

for object : PFObject! in objects as PFObject {
       ...
}

对此:

for object: PFObject in objects as [PFObject] {
       ...
}

我还想指出,这可能无法达到您的预期目的:

if !(error != nil) {

括号前面的附加感叹号会创建一个双负数,这会使您的意图含糊不清。

更新

正如评论中指出的那样,Parse建议执行一个简单的for-in循环,而无需任何显式的向下转换。

for object in objects {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift,解析和Xcode 6 beta6

来自分类Dev

Swift Xcode6 beta6正则表达式

来自分类Dev

AnyObject在Xcode8 beta6中不起作用?

来自分类Dev

使用xcode 6 beta6和部署目标7.0的链接器命令失败,退出代码为1(使用-v查看调用)

来自分类Dev

Xcode 6 Beta not compiling

来自分类Dev

Xcode 6 Beta项目与Xcode 6兼容

来自分类Dev

Swift 3(Xcode 8 beta 6)localizedStringWithFormat

来自分类Dev

Xcode 6 beta 6初始化

来自分类Dev

SWIFT-xcode 6 beta 6中的KVO。

来自分类Dev

XCode6 beta 6 Swift编译器错误

来自分类Dev

Xcode 6 Beta无法编译

来自分类Dev

Xcode 6 Beta无法编译

来自分类Dev

如何部署使用XCODE 6-beta和TestFlight制作的Swift iOS应用

来自分类Dev

通过NSData和Data(Xcode 8 beta 6,Swift 3)的不同控制台输出数据

来自分类Dev

通过NSData和Data(Xcode 8 beta 6,Swift 3)的不同控制台输出数据

来自分类Dev

Swift中的协议声明-Xcode 6 beta 5

来自分类Dev

Xcode6 beta 7 Swift无法使用UIPickerViewDataSource

来自分类Dev

Xcode 8 Beta 6:main.swift无法编译

来自分类Dev

Xcode 6 Beta7 NSDictionary转换为Swift

来自分类Dev

Xcode 8 beta 6 AnyObject Swift 3的更改

来自分类Dev

Xcode 6 Beta / Swift-游乐场未更新

来自分类Dev

Error when I try playground for Swift in Xcode 6 beta

来自分类Dev

.enumerateGroupsWithTypes阻止停止参数Swift(Xcode 6 beta 5)

来自分类Dev

使用Swift,XCode6-Beta进行静态链接

来自分类Dev

(Xcode 6 beta / Swift)performSegueWithIdentifier在segue之前有延迟

来自分类Dev

Xcode 6 Beta 5 Swift Playground:找不到CGRectMake()的符号

来自分类Dev

Xcode 8 beta 6中的Swift Header问题

来自分类Dev

Xcode 8 beta 6 AnyObject Swift 3的更改

来自分类Dev

Xcode 6 Beta / Swift-游乐场未更新

Related 相关文章

热门标签

归档