在早期版本的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中运行一系列代码之前创建延迟?
我经常隐藏状态栏
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.
我正在制作一个快速的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当天的开始,而不是用户所在的那天的开始),而且我也得到了高度膨胀的步数(原因未知).
我是Swift的新手,我正在尝试发出HTTP请求.我尝试了Stack Overflow问题中的许多想法,但是在操场上运行时都会导致错误; 我相信这是因为他们都在Swift 1.0-2.0中.
如何在Swift 3中发出HTTP请求?
更新我尝试了这个答案中提出的第一个解决方案,在完成Xcode的建议"Fix-it"后,我遇到了四个错误:
在我的swift程序中,我有一个非常长的十进制数字(比如说17.9384693864596069567),我想将小数截断为几个小数位(所以我希望输出为17.9384).我不希望数字四舍五入到17.9385.我怎样才能做到这一点?
感谢帮助!
注意:这不是重复的,因为在使用其中一些函数之前,它们使用的是旧版本的swift.此外,他们使用浮点数和整数,而我说的是双打.他们的问题/答案要复杂得多.
我正在制作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) 在iOS 10中,当3D触摸您的应用程序时,应用程序的小部件与3D触摸快捷方式一起显示.该小部件自动成为应用程序小部件的小版本; 有没有办法让这个小部件成为小部件的大版本(通常通过按下Show More小部件屏幕来查看)?
如何在3D触摸我的应用程序时显示我的应用程序小部件的大版本(通常在按下显示更多时出现)时显示的小部件?
我正在构建一个计算器,并希望它自动将每个小数转换为分数.因此,如果用户计算答案为"0.333333 ..."的表达式,则返回"1/3".对于"0.25",它将返回"1/4".使用GCD,如此处所示(十进制到分数转换),我已经想出如何将任何有理的终止十进制转换为十进制,但这对任何重复的小数都不起作用(如.333333).
堆栈溢出的每个其他函数都在Objective-C中.但我需要一个快速应用程序中的功能!所以这个(/sf/answers/940116621/)的翻译版本会很棒!
关于如何将有理数或重复/无理小数转换为分数(即将"0.1764705882 ..."转换为3/17)的任何想法或解决方案都会很棒!
我在堆栈溢出时看到了很长的Objective-C答案,但没有快速的答案.
如何从视图控制器以swift方式以编程方式更改初始视图控制器?
我认为它会是这样的:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
storyboard.setInitialViewController(identifier: ViewController())
Run Code Online (Sandbox Code Playgroud)
但不,这没有任何作用.第一行很好,但第二行的功能不存在.
在我的Swift 2应用程序中,用户通过文本字段创建一串文本,然后将其共享给另一个应用程序.现在,我只能将文本共享作为.txt文件,这不提供Open In Pages打开系统共享对话框时的选项.我怎样才能使用户可以选择在Pages中打开输入的文本作为文档?
我必须将文本转换为.docx或.pages格式吗?如果是这样,怎么样?