Xcode Playground只能部分运行

时间:2019-01-19 08:06:00

标签: swift xcode swift-protocols

如上所示,在Xcode游乐场中,我试图扩展协议 Exercise ,使其具有两个更多的计算属性,即 caloriesBurnedPerMinute description 。当我想在操场上运行这部分代码时,最左下角的“播放按钮”显示为灰色,表示在第20行之前它无法运行代码。但是,如果我只想运行代码直到第14行,如下所示,“播放按钮”显示为蓝色,表示它可以运行代码直到第14行。

我可以知道协议 Exercise 的第二个扩展是否有问题?

编辑:以下是代码。

import Cocoa

protocol Exercise: CustomStringConvertible {
   var name: String { get }
   var caloriesBurned: Double { get }
   var minutes: Double { get }
}

extension Exercise {
   var caloriesBurnedPerMinute: Double {
       return caloriesBurned / minutes
   }
}

extension Exercise {
   var description: String {
      return "Exercise(\(name), burned \(caloriesBurned) calories in \(minutes) minutes)"
   }
}

2 个答案:

答案 0 :(得分:1)

您的代码没有错,这只是Xcode 10的新功能。参见here

这是一种逐行运行代码的方法,但是有一些限制。如果将鼠标悬停在行号“ 20”上,则会看到一条灰线:

enter image description here

这意味着Xcode不能只运行代码的那部分,大概是因为Xcode处理扩展声明的方式。

只需添加一些实际运行的代码即可,而不只是声明,然后按底部面板上方的播放按钮。您的代码可以正常运行。

答案 1 :(得分:0)

您需要将Double变量包装在String的{​​{1}}中,

String(caloriesBurned)

我不知道为什么,但是有帮助