nicht unsafeBitCast zwischen verschiedenen Arten in verschiedenen Größen in swift

wenn ich versuche zu finden, Duplikate in array, erhalte ich die Fehlermeldung "kann nicht unsafeBitCast zwischen verschiedenen Arten in verschiedenen Größen". Ich finde die Duplikate folgende Methode.

    func uniq<S : SequenceType, T : Hashable where S.Generator.Element == T>(source: S) -> [T] {
    var buffer = [T]()
    var added = Set<T>()
    for elem in source {
        if !added.contains(elem) {
            buffer.append(elem)
            added.insert(elem)
        }
    }
    return buffer
}

func filter() {
    var arrayForSearch = mp3Files as! [String]
    var filteredArray = uniq(arrayForSearch)
    println("filtered array \(filteredArray)")
}

Die Methode der Duplikate suchen ich wusste, dass Sie auf diesen link,geben Sie den link-Beschreibung hier. Ich benutze Xcode 6 und Swift 1.2

Gibt es die Reihe in der dieser code.

var mp3Files: Array<String!>!
func exportData() {
    var generalURL: [AnyObject]?
    var arrayFiles: Array<NSURL!>!
    var directory = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
    var urlFromDirectory = directory.first as! NSURL

    var file = fileManager.contentsOfDirectoryAtURL(urlFromDirectory, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles, error: nil)!
    println("file \(file)")

    mp3Files = file.map(){ $0.lastPathComponent }.filter(){ $0.pathExtension == "mp3" }

  println("mp3 files  \(mp3Files)")
}

Als ich schrieb diesen code in playground, es funktioniert.
Ein Beispiel

var array = ["Apple", "Mac", "iPhone", "iPad Air", "Apple", "Air", "Air"]
var filteredArray = Array(Set(array))

println(filteredArray)

Wie kann ich es in meinem Projekt?

Schreibe einen Kommentar