我正在尝试保留app属性的枚举,如下所示:
import Foundation
import UIKit
public enum AppDimensions:CGFloat {
case TOP_BAR_HEIGHT = 183.0
case PROFILE_IMAGE_HEIGHT = 200.0
case TOOLBAR_HEIGHT = 70.00
case CATEGORY_TABLE_OFFSET_Y = 210.00
}
var i:CGFloat = CGFloat(self.view.bounds.height) - CGFloat(AppDimensions.TOOLBAR_HEIGHT)
给我一个错误: 二进制运算符' - '不能应用于...
我该如何正确地做到这一点?
答案 0 :(得分:1)
Swift错误消息可能具有挑战性: 创建中间语句以隔离错误:
let toolBarHeight = CGFloat(AppDimensions.TOOLBAR_HEIGHT)
let boundsHeight = CGFloat(self.view.bounds.height)
var i:CGFloat = boundsHeight - toolBarHeight
这会在第一个更有帮助的语句中产生错误:
无法使用参数或类型'(AppDimensions)'
调用类型' CGFloat`的初始值设定项
解决方案:
let x = CGFloat(AppDimensions.TOOLBAR_HEIGHT.rawValue)
中级声明是一个调试好友和良好的代码,也是非常好的名字。
答案 1 :(得分:1)
也许你错过了.rawValue
?试试这个:
var i:CGFloat = CGFloat(self.view.bounds.height) - CGFloat(AppDimensions.TOOLBAR_HEIGHT.rawValue)