2016-12-07 8 views
0

warning when as! NSArrayWie konvertiert man [Any] in NSArray?

wie [Any] Array NSArray, konvertieren, weil ich "reverseObjectEnumerator" just in NSArray verwenden möchten!

+2

Warum sind Sie NSArray o.0 – Alexander

+0

mit kann ich nicht sicher, dass [Alles] .reversed gleich [NSArray reverseObjectEnumerator]. Mein OC-Code verwendet [NSArray reverseObjectEnumerator], ich möchte es nur in swift übersetzen. – lionnner

+2

Schreiben Sie nicht Ziel C in Swift-Syntax. Es klappt nie gut. Sie sind völlig verschiedene Sprachen mit verschiedenen Stilen, Idiomen und Werkzeugen. – Alexander

Antwort

3

Warum konvertieren Sie [Any] in , wenn Sie reversed() mit Ihrer [Any] verwenden können? In Swift ist es besser, anstelle von NSArray ein natives Array zu verwenden.

for item in keysStoreBySize.reversed() { 

} 

Wenn Sie noch NSArray dann verwenden Sie die NSArray initializer init(array:) verwenden können.

let array = NSArray(array: keysStoreBySize) //Will convert [Any] to NSArray 
+0

Thx, OC: NSArray * keysSortedBySize = [mainSizes keysSortedByValueUsingSelector: @selector (vergleichen :)]; für (NSString * Schlüssel in [keysSortedBySize inverseObjectEnumerator]) {} Ist [Any]. Reversed gleich [keysSortedBySize reverseObjectEnumerator] Ich möchte nur schnell übersetzen. – lionnner

+0

ich ändern es: lassen keysSortedBySize = mainSizes .keysSortedByValue (mit: #selector (NSNumber.compare (_ :))) let arr = NSArray.init (array: keysSortedBySize) für Schlüssel in arr.reverseObjectEnumerator() {} – lionnner

+0

@lionnner 'reversed()' wird auf die gleiche Weise funktionieren. –

Verwandte Themen