小编Pet*_*r71的帖子

Swift 3:数组到字典?

我有一个大型数组,需要通过键(查找)访问它,所以我需要创建字典.在Swift 3.0中是否有内置函数可以这样做,还是我需要自己编写?

首先,我将需要它用于具有键"String"的类,稍后我可以编写用于通用目的的模板版本(所有类型的数据和键).

arrays dictionary filter swift

35
推荐指数
8
解决办法
3万
查看次数

Swift:二进制搜索标准数组?

我有一个排序的数组,并希望对它进行二进制搜索.

所以我问Swift库中是否已有类似等等的东西?或者是否有可用的独立版本?

当然我可以自己写,但我想避免再次重新发明轮子.

arrays types binary-search swift

22
推荐指数
4
解决办法
1万
查看次数

SWIFT:仅获取路径

我正在寻找一个预定义的函数来从包含文件名的路径获取路径.因此,我没有获取文件名,而是想要另一部分.

当然,我可以像我自己一样做:

func PathOnly() -> String {
    let n = NSURL(fileURLWithPath: self).lastPathComponent?.characters.count
    return self.Left(self.characters.count - n!)
}
Run Code Online (Sandbox Code Playgroud)

当扩展String时,为什么重新发明轮子?:-) 任何的想法?

directory path swift

10
推荐指数
1
解决办法
7241
查看次数

正确使用NSGetExecutablePath

我尝试在运行时获取我的应用程序的路径。我从C找到了一些旧资料,并将其相应地转换为函数参数类型定义:

var path = [Int8] (count:1024, repeatedValue: 0)
var bufsize : UInt32 = 1024

if _NSGetExecutablePath(&path, &bufsize) == 0 {
println("executable path is \(path)")
}
Run Code Online (Sandbox Code Playgroud)

它可以运行,但是我需要一个Int8数组,而不是一个字符串。因此,我必须搜索字符链的末尾并将其转换回字符串。在SWIFT中使用此功能的正确方法是什么?

parameters swift

5
推荐指数
1
解决办法
752
查看次数

应用程序在iPhone上崩溃但在模拟器上没有崩溃

我正在使用XCode 7.0b5并创建了一个Swift应用程序.它在模拟器上运行良好,但在独立运行时(无线缆)在iPhone 4上崩溃.如何识别崩溃的位置?我读到了可能的内存问题.我正在阅读一个大文本文件,所以它需要近200 MB的RAM.我怎么检查呢?

iphone crash debugging simulator swift

5
推荐指数
1
解决办法
3212
查看次数

斯威夫特:按日期比较日期

我试着比较两天忽略时间.所以我用

calendar.compare(date1, to: date2, toGranularity: .day)
Run Code Online (Sandbox Code Playgroud)

但是,在将字符串日期传输到Date类型时,它将转换为UTC.所以它将从2016年1月1日0:05"移动"到2015年12月31日晚上11:05.每日比较时,这仅包括剩余的小时.在转换之前它是24小时.有什么想法不费力地处理这个问题?

另外:代码:

var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy hh:mm"
var date1 : Date = dateFormatter.date(from:  "01-01-2016 00:05")!
var date2 = dateFormatter.date(from:  "01-01-2016 03:30")

if let dateFromString = dateFormatter.date(from:  "01-01-2016 00:05") {
    print(dateFromString)
    dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
    let stringFromDate = dateFormatter.string(from: dateFromString)
}


Calendar.current.compare(date1, to: date2!, toGranularity: .day) == .orderedSame
Run Code Online (Sandbox Code Playgroud)

compare date utc swift

4
推荐指数
1
解决办法
7172
查看次数

为了int数组加入joinWithSeparator?

在新的Swift 2样式中,join必须由joinWithSeparator替换.但是我得到了错误消息,发现了这个模糊的引用:

var distribCharactersInt = [Int](count:lastIndex + 1, repeatedValue:0)
...                        
let DistributionCharacterString = distribCharactersInt.joinWithSeparator(",")
Run Code Online (Sandbox Code Playgroud)

我忘记了什么?

arrays join swift

2
推荐指数
1
解决办法
3113
查看次数

获取完整路径或转换为完整路径

使用时

let directoryEnumerator = FileManager().enumerator(at: ...
Run Code Online (Sandbox Code Playgroud)

在 Swift 3 中,我从文件夹中获取所有文件,例如

"file:///Volumes/MacOS/fasttemp/Fotos/"
Run Code Online (Sandbox Code Playgroud)

结果不包括主要路径(此处为“/Volumes/MacOS”)。所以我得到

"file:///fasttemp/Fotos/2005/"
Run Code Online (Sandbox Code Playgroud)

如何获取完整路径(直接从枚举器)或转换它们。我想使用 URL 函数,而不是通过假设进行操作的字符串函数。

file path enumerator swift

2
推荐指数
1
解决办法
3293
查看次数

获取更短版本的for循环?

我正在使用Swift 3.0并使用此代码搜索数组中的项目作为String类型的扩展:

extension String {
    func equal(compareToArray : [String]) -> Bool {
        for s in compareToArray {
            if self == s {
                return true
            }
        }
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

它运行正常,但我的问题是,我可以做得更好(更短/更简单或更快)?

好的,另一个类似的样本:

func contains(compareToArray : [String]) -> Bool {
    for s in compareToArray {
        if self.contains(s) {
            return true
        }
    }
    return false
}
Run Code Online (Sandbox Code Playgroud)

arrays string optimization swift

1
推荐指数
1
解决办法
60
查看次数