2015-06-20 30 views
1

我的問題是: 我在查詢user["key"],我試圖分配給一個新的變量,如在文檔上。刪除對象從分析/不能轉換爲PFObject/NSArrayM

Parse中的列是一個數組Strings,在我的查詢中,如果我println(user["key"])它返回正確的對象。

然而,當我這樣做:

let myVariable = user["key"] as String 

let myVariable = user["key"] as! String 

我有錯誤:

Could not cast a value of type _NSArrayM to NSString

我的最終目標是從解析檢索對象,並提交「如果」條件,然後刪除結果。爲此,我需要將對象轉換爲PFObject,這是我奮鬥的地方。

要添加,我只能從let myVariable = user["key"]

低垂到AnyObject!,當我試圖刪除這個對象,我有錯誤

NSArrayM delete: unrecognised selector sent to instance.

任何幫助將不勝感激。

+1

首先,你說「在解析列是字符串數組」,然後嘗試'爲String',什麼不工作一個驚喜,你也許應該使用'[字符串]' – luk2302

+0

事實上,由於很多。我感到困惑,因爲我在Parse中的對象本身就是數組。我承認這個錯誤是愚蠢的。再次感謝您的回覆。 – viktor

回答

1

Parse.com正常返回一個數組,你可以在你的錯誤信息,請參閱:

Could not cast a value of type _NSArrayM to NSString

__NSArrayM是一個碼字的可變數組,所以你想投一個數組爲字符串。

如果您確定您的查詢返回的結果只有一個,那麼您只能檢索數組中最後(也是唯一)的元素並將其轉換爲字符串。

if let myVariable = user["key"].last as? String{ 
    println("myVariable key is \(myVariable)" 
} else { 
    println("Could not retrieve key") 
} 
+1

我想你有一個額外的'?'。我沒有打開Xcode ......但不應該只是'user [「key」]。 String'? – nhgrif

+0

@nhgrif你是對的,我在想,因爲數組可能是空的它將是一個可選的,但我在XCode測試和編譯器要求我刪除。我已經修復了上面的代碼。謝謝 – Icaro

+0

你*是*正確的。這個數組可以是空的,'last'可以返回'nil',但這裏不需要'?'。 – nhgrif