小编Mon*_*eth的帖子

在Swift中,如何显示向上或向下舍入的百分比值,没有小数位

我认为这将是相当简单的,但我似乎无法解决或找到一个涵盖我的情况的现有问题.

最初我设置了一些变量如下:

var score :Int! = 0
var totalquestionsasked :Int! = 0
var percentagecorrect :Int! = 0
Run Code Online (Sandbox Code Playgroud)

这使我的所有值都计算好了,但我遇到了百分比问题.

我的百分比基本公式是:

percentagecorrect = score / totalquestionsasked * 100
Run Code Online (Sandbox Code Playgroud)

但是,在文本标签中使用值时,无法显示此内容.

所以经过一些研究,我改变了我的变量:

var score :Double = 0.0
var totalquestionsasked :Double = 0.0
var percentagecorrect :Double = 0.0
Run Code Online (Sandbox Code Playgroud)

仍然使用相同的百分比公式:

percentagecorrect = score / totalquestionsasked * 100
Run Code Online (Sandbox Code Playgroud)

然而,虽然这显示没问题,但我不想要所有小数位.经过一些研究后,我在另一个问题中遇到了一个扩展,并根据我的应用进行了调整.我的扩展是:

extension Double {
    var roundTo0f: Double {return Double(round(1*self)/1) }
    var roundTo1f: Double {return Double(round(10*self)/10) }
    var roundTo2f: Double {return Double(round(100*self)/100)  }
    var roundTo3f: Double {return Double(round(1000*self)/1000) }
} …
Run Code Online (Sandbox Code Playgroud)

swift

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

Swift - 在iphone应用程序的后台运行计时器的最佳方式

我是iOS开发的新手,我正在开发一款iPhone烹饪应用程序,让用户可以选择三种"计时器"选项.第一个计时器运行6分钟,第二个计时器运行8.5分钟,最后一个计时器运行11分钟.

一旦计时器完成倒计时,它将播放音频文件并在应用程序屏幕中显示一条消息.一切都很完美,除了我在测试中发现计时器在用户转到另一个应用程序时停止运行(例如检查电子邮件,使用Safari等).显然,这会破坏应用程序的目的,因为用户需要知道计时器何时完成,以便他们可以进行下一步(例如从炉子中取出一个平底锅).

我研究了背景模式,我感到很困惑.似乎我没有理由(根据Apple)在后台运行这个应用程序(即它不播放音乐,使用位置服务等).我还会继续阅读,否则在后台运行会有10分钟的限制.

我也遇到了本地和远程通知的想法,但Apple的开发者网站上不再存在我提到的页面.我现在感到茫然和困惑.

有没有办法让我真正让这个应用程序在后台工作长达11分钟?如果是这样,怎么样?


这是一个更新.我一直试图了解本地通知和后台任务.

本地通知 这显示了一些承诺,但我不确定如何在我的方案中实现这一点?在通知出现/播放声音之前,我如何确保经过适当的时间?

例如,用户在正好下午12:00点选择"煮熟的鸡蛋"按钮,应用程序启动计数器6分钟.在下午12:01:20,用户阅读电子邮件,在12:01:50将手机放下之前需要30秒才能阅读报纸.让我们假设在12:02:50电话进入锁定模式,我如何确保本地通知触发3分钟和10秒以后构成整个6分钟并播放声音文件通知用户他们的蛋准备好了.

背景任务 如果我可以启动并重新启动后台任务以允许我的计时器在播放声音之前完成,这可能适用于我的场景.

下面是我的代码片段(与上面的鸡蛋示例相关),我希望这将有助于我的应用程序在上下文中:

@IBAction internal func ButtonSoft(sender: UIButton) {

    counter = 360
    TimerDisplay.text = String("06:00")

    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateCounter"), userInfo: "Eggs done!!", repeats: true)


    ButtonSoft.alpha = 0.5
    ButtonMedium.alpha = 0.5
    ButtonHard.alpha = 0.5
    ButtonSoft.enabled = false
    ButtonMedium.enabled = false
    ButtonHard.enabled = false


}




@IBAction internal func ButtonMedium(sender: UIButton) {

    counter = 510
    TimerDisplay.text = String("08:30")

    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateCounter"), userInfo: "Eggs done!!", repeats: true)


    ButtonSoft.alpha …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

如果不使用通用iOS设备创建存档,我提交给Apple的Xcode存档可以吗?

我想标题说明了一切。

基本上,我是Xcode的新手,昨晚深夜我向Apple提交了一个应用程序。一切正常(创建存档,验证,上传),但是今天早上我注意到Xcode仍连接到物理iPhone,这就是在“设备”列表中选择的。我现在在想,昨晚创建存档时,我可能没有选择“通用iOS设备”。

这有关系吗?而且,如果是这样,怎么办?我是否需要拒绝此二进制文件并上传新创建的存档?

如果在其他地方已经回答了这个问题,请随时向我介绍-我确实做了搜索,但没有找到答案。

xcode ios

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

在 Swift 中,如何检测应用程序启动次数以显示警报?

首先让我说我是编程新手,也许我想做的事情是不可能的,至少不是我想要做的事情!我已经做了很多搜索,但我一定是在搜索错误的东西,因为我在任何地方都找不到答案。:(

简而言之,我想要做的是让我的应用程序计算它已启动的次数,并在达到特定值时向用户显示警报。我这样做的方法如下所述。

我已经声明了一个变量如下:

var numberoflaunches :Int! = 0
Run Code Online (Sandbox Code Playgroud)

我创建了以下功能:

func LoadNumberOfLaunches()
{
    let defaults = NSUserDefaults.standardUserDefaults()
    numberoflaunches = defaults.integerForKey("Launches")
}


func SaveNumberOfLaunches()
{
    numberoflaunches = numberoflaunches + 1
    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setInteger(numberoflaunches, forKey: "Launches")
}


func ShowReviewPrompt()
{
    if (numberoflaunches == 10 || numberoflaunches == 50 || numberoflaunches == 100){

    // create the alert
    if #available(iOS 8.0, *) {
        let alert = UIAlertController(title: "Friendly prompt", message: "Would you consider reviewing this App? It really makes a difference! If not, …
Run Code Online (Sandbox Code Playgroud)

swift

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

标签 统计

swift ×3

ios ×2

xcode ×1