ios - 从 'MDLMaterialProperty?!' 转换?

标签 ios swift parse-platform swift2

我正在为一个要转换为 Xcode 7 的应用程序使用解析框架。作为迁移项目的一部分发生的有趣错误之一如下:

Cast from 'MDLMaterialProperty?!' to unrelated type 'PFUser' always fails

违规行似乎是下面的“if let”子句。为了比较,我已经评论了在以前版本的 Swift 中运行良好的旧行。

关于这实际上在做什么——我已经将一个 Parse 对象数组传递给“likesForThankful”,其中指针“userID”指的是相关的 PFUser。作为此方法的一部分,我将各个 PFUsers 写入数组。

感谢任何帮助 - 提前致谢。

 //Add PFUsers who Like Post to our FeedItem   
 private func callbackFromLikesProcessing(likesForThankful:[AnyObject], againstFeedItem:FeedItem){

    //Instantiate our Objective C compatible array for processing later
    againstFeedItem.parseUsersObjectsWhoLikePost = NSMutableArray()

    //Loop through likes and add PFUsers to array of users who like post
    for usersWhoLikePost in likesForThankful{
        // if let parseUserWhoLikesPost = usersWhoLikePost["userID"] as PFUser{
        if let parseUserWhoLikesPost = usersWhoLikePost["userID"] as? PFUser {
            againstFeedItem.parseUsersObjectsWhoLikePost.addObject(parseUserWhoLikesPost)
        }
    } 

安德鲁

最佳答案

想出它是否可以帮助任何人 - 这是基本的 Swift 语法(虽然我不确定为什么编译器让我在 Swift 的第一个版本中摆脱它!)。

因为 usersWhoLikePost 是一个 PFObject,它恰好包含一个指向 PFUser 对象的指针,所以我需要先像这样有条件地解包它:

    for usersWhoLikePost in likesForThankful{
        if let parseLikeObject = usersWhoLikePost as? PFObject{
            if let parseUserWhoLikesPost = parseLikeObject["userID"] as? PFUser {
                againstFeedItem.parseUsersObjectsWhoLikePost.addObject(parseUserWhoLikesPost)
            }
        }

    }

在此之后,我可以像之前那样继续操作,并通过有条件地展开 PFUser 对象来访问“userID”属性。

关于ios - 从 'MDLMaterialProperty?!' 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500626/

相关文章:

ios - 包括 Split View在内的整个屏幕的 Swift iOS 屏幕截图

Android/iOS : How to create a web-app, 使用原生组件?

ios swift parse.com : How can I select data from multiple objects?

ios - Facebook iOS Swift SDK : Not getting callback

swift - Swift 中的高精度 float

ios - 如何查找图像是否存在 - 解析

ios - 枚举 NSString 的最佳方法

ios - 如何使用 NSNumber 约束进行 parse.com 查询?

xcode - 解析查询从 findObjectsInBackgroundWithBlock 不返回任何内容

javascript - WKWebView 返回(_ :) evaluateJavaScript Fails if going back more than 2 in history