iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在swift中不能在不同大小的类型之间使用unsafeBitCast大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试在数组中找到重复项时,我得到错误“不能在不同大小的类型之间进行unsafeBitCast”.我找到了重复的方法. func uniq<S : SequenCEType, T : Hashable where s.Generator.Element == T>(source: S) -> [T] { var buffer = [T]() var added = Set<T>(
我试在数组中找到重复项时,我得到错误“不能在不同大小的类型之间进行unsafeBitCast”.我找到了重复的方法.

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)")
}

在这链接enter link description here上找到的重复查找方法.我使用Xcode 6和Swift 1.2

这段代码中有数组.

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)")
}

当我在游乐场中编写此代码时,它可以工作.
一个例子

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

println(filteredArray)

我如何在我的项目中使用它?

解决方法

var mp3Files: Array<String!>!

哇,这是很多感叹号……他们不需要.

var arrayForSearch = mp3Files as! [String]

并且mp3Files的类型永远不会与[String]相同,所以你不能强制它们之间的强制转换(如果它允许你会崩溃).

你经常使用隐式解包的选项.只在某些特殊情况下才需要它们.只需将mp3Files更改为[String](在这种情况下,你根本就不需要as !,你不应该经常使用as!).

同样,arrayFiles(你从不使用)应该只是[NSURL],而不是Array< NSURL!> !.

大佬总结

以上是大佬教程为你收集整理的ios – 在swift中不能在不同大小的类型之间使用unsafeBitCast全部内容,希望文章能够帮你解决ios – 在swift中不能在不同大小的类型之间使用unsafeBitCast所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。