2017-02-19 7 views
-1

ソート機能で作成されたスウィフトを使用してソートすることはできません。「ソートされた(by:)」配列が返されない/素早くPFObjectsの配列をソートする方法

私はPFObjectsの配列を持っていますが、この質問の範囲について何がわからないのであれば、それをおそらくhashTablesの配列として考えるほうがよいでしょう。

私はこの

self.courseArray = self.courseArray.sorted(by: sortClasses) 

を使用して配列をソートしようとしているとsortClassesは、次のようになります。キーの優先順位がintを与える

func sortClasses(_ x: Any, _ y:Any) ->Bool{ 
    return ((x as! PFObject).object(forKey: "priority") as! Int) < ((y as! PFObject).object(forKey:"priority") as! Int) 
} 

。私はこれを行うとき

はしかし、私はこのエラー

Cannot assign value of type '[NSFastEnumerationIterator.Element]' to type 'NSMutableArray' 

に任意の提案を得ますか?

答えて

0

NSMutableArrayではなく、ネイティブスイフトArrayをそのまま使用してください。

宣言courseArray

として
[PFObject]() 

とあなたはネイティブ対応へNSMutableArrayに関連する他のAPIを変更する場合があります

func sortClasses(_ x: Any, _ y:Any) -> Bool { 
    return (x as! PFObject)["priority"] as! Int < (y as! PFObject)["priority"] as! Int 
} 

キーのサブスクリプションを使用します。

+0

問題は、コード内の他の箇所にはNSMutableArrayが必要ですが、そこから問題の根本原因を知ることができますか? –

+0

Swiftで 'NSMutableArray'を使う必要は全くありません。 Swiftの強力なタイプのシステムに適合させるために、*その他のスポット*を更新することを検討してください。それはそれの価値がある、私を信じてください。 – vadian

関連する問題