小编owl*_*ipe的帖子

如何编写Swift 3中的延迟

在早期版本的Swift中,可以使用以下代码创建延迟:

let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 4 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
    //put your code which should be executed with a delay here
}
Run Code Online (Sandbox Code Playgroud)

但现在,斯威夫特3时,Xcode自动改变6个不同的东西,但随后出现以下错误:"无法转换DispatchTime.now到预期值dispatch_time_t又名UInt64".

如何在Swift 3中运行一系列代码之前创建延迟?

xcode ios swift swift3 dispatch-after

299
推荐指数
5
解决办法
22万
查看次数

无法隐藏状态栏-Swift 3,

我经常隐藏状态栏

override func prefersStatusBarHidden() -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

但Xcode给了我一个错误,说"方法不会覆盖其超类中的任何内容".

如果我删除了override,Xcode会给出一个不同的错误:"方法"prefersStatusBarHidden()'与Objective-C选择器'prefersStatusBarHidden'与来自超类'UIViewController'的'prefersStatusBarHidden'的getter冲突与同一个Objective-C选择器"


我还在Target的常规设置中选中了"隐藏状态栏":

在此输入图像描述

但状态栏仍然显示.


我在另一个Stack Overflow答案中找到了这个方法

UIApplication.shared.setStatusBarHidden(true, with: .none)
Run Code Online (Sandbox Code Playgroud)

但这也不会隐藏状态栏.


在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误).现在我可以用Xcode 8 Beta 4隐藏状态栏吗?

注意:状态栏显示在模拟器设备和物理设备上,均运行iOS 10.

xcode ios swift swift3

47
推荐指数
1
解决办法
3万
查看次数

HealthKit Swift获得今天的步骤

我正在制作一个快速的iOS应用程序,它集成了Health应用程序报告的用户步数.我可以在最后一小时轻松找到用户的步数,使用它作为我的谓词:

let anHourBeforeNow: NSDate = NSDate().dateByAddingTimeInterval(-60 * 60)
let predicate = HKQuery.predicateForSamplesWithStartDate(anHourBeforeNow, endDate: NSDate(), options: .None)
Run Code Online (Sandbox Code Playgroud)

我休息了,所以我可以成功访问用户在最后一小时的步数.但是,如何从一天开始就访问用户的步骤数据,例如步骤部分中显示的Health应用程序?

我想做这样的事情:

let date = NSDate()
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let newDate = cal.startOfDayForDate(date)
let predicate = HKQuery.predicateForSamplesWithStartDate(newDate, endDate: NSDate(), options: .None)
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有针对时区进行调整(所以它给了我UTC当天的开始,而不是用户所在的那天的开始),而且我也得到了高度膨胀的步数(原因未知).

那么如何获得当天用户的步数,使用与Health中报告的步骤相同的步数,如下图所示:在此输入图像描述

ios swift healthkit

21
推荐指数
5
解决办法
2万
查看次数

Swift 3中的HTTP请求

我是Swift的新手,我正在尝试发出HTTP请求.我尝试了Stack Overflow问题中的许多想法,但是在操场上运行时都会导致错误; 我相信这是因为他们都在Swift 1.0-2.0中.

如何在Swift 3中发出HTTP请求?

更新我尝试了这个答案中提出的第一个解决方案,在完成Xcode的建议"Fix-it"后,我遇到了四个错误:

在此输入图像描述

httprequest swift swift3

11
推荐指数
3
解决办法
6万
查看次数

如何在Swift中将小数截断为x位置

在我的swift程序中,我有一个非常长的十进制数字(比如说17.9384693864596069567),我想将小数截断为几个小数位(所以我希望输出为17.9384).我希望数字四舍五入到17.9385.我怎样才能做到这一点?

感谢帮助!

注意:这不是重复的,因为在使用其中一些函数之前,它们使用的是旧版本的swift.此外,他们使用浮点数和整数,而我说的是双打.他们的问题/答案要复杂得多.

double decimal calculator ios swift

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

创建一个分页的PDF-Mac OS X.

我正在制作Mac应用程序(在Swift 3中使用Xcode 8,Beta 5),用户可以使用该应用程序进行长注并将其导出为PDF.

要创建此PDF,我使用Cocoa的dataWithPDF:方法,使用以下代码:

do {
   // define bounds of PDF as the note text view
   let rect: NSRect = self.noteTextView.bounds
   // create the file path for the PDF
   if let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true).first {
        // add the note title to path
        let path = NSURL(fileURLWithPath: dir).appendingPathComponent("ExportedNote.pdf")
        // Create a PDF of the noteTextView and write it to the created filepath
        try self.noteTextView.dataWithPDF(inside: rect).write(to: path!)  
   } else {
        print("Path format incorrect.") // never happens to …
Run Code Online (Sandbox Code Playgroud)

pdf macos cocoa swift swift3

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

显示大型3D Touch Shortcut小部件

在iOS 10中,当3D触摸您的应用程序时,应用程序的小部件与3D触摸快捷方式一起显示.该小部件自动成为应用程序小部件的小版本; 有没有办法让这个小部件成为小部件的大版本(通常通过按下Show More小部件屏幕来查看)?

如何在3D触摸我的应用程序时显示我的应用程序小部件的大版本(通常在按下显示更多时出现)时显示的小部件?

widget ios swift 3dtouch swift3

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

Swift中的十进制到分数转换

我正在构建一个计算器,并希望它自动将每个小数转换为分数.因此,如果用户计算答案为"0.333333 ..."的表达式,则返回"1/3".对于"0.25",它将返回"1/4".使用GCD,如此处所示(十进制到分数转换),我已经想出如何将任何有理的终止十进制转换为十进制,但这对任何重复的小数都不起作用(如.333333).

堆栈溢出的每个其他函数都在Objective-C中.但我需要一个快速应用程序中的功能!所以这个(/sf/answers/940116621/)的翻译版本会很棒!

关于如何将有理数或重复/无理小数转换为分数(即将"0.1764705882 ..."转换为3/17)的任何想法或解决方案都会很棒!

calculator fractions ios swift swift2

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

以编程方式Swift设置初始视图控制器

我在堆栈溢出时看到了很长的Objective-C答案,但没有快速的答案.

如何从视图控制器以swift方式以编程方式更改初始视图控制器?

我认为它会是这样的:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
storyboard.setInitialViewController(identifier: ViewController())
Run Code Online (Sandbox Code Playgroud)

但不,这没有任何作用.第一行很好,但第二行的功能不存在.

storyboard ios swift

7
推荐指数
2
解决办法
2万
查看次数

在Pages-Swift中打开文本

在我的Swift 2应用程序中,用户通过文本字段创建一串文本,然后将其共享给另一个应用程序.现在,我只能将文本共享作为.txt文件,这不提供Open In Pages打开系统共享对话框时的选项.我怎样才能使用户可以选择在Pages中打开输入的文本作为文档?

我必须将文本转换为.docx或.pages格式吗?如果是这样,怎么样?

ios swift

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