Swift-Switch语句不起作用

用户名

我想将UIColor存储在NSUserDefaults中。但是,这导致了一些问题,因此我想可以将UIColor保存为String以便转换回UIColor。

我决定使用switch语句执行此操作:

switch bc {
    case "UIColor.redColor()":
        blockColour = UIColor.redColor()
    case "UIColor.orangeColor()":
        blockColour = UIColor.orangeColor()
    case "UIColor.blueColor()":
        blockColour = UIColor.blueColor()
    case "UIColor.greenColor()":
        blockColour = UIColor.greenColor()
    case "UIColor.blackColor()":
        blockColour = UIColor.blackColor()
    case "UIColor.grayColor()":
        blockColour = UIColor.grayColor()
    case "UIColor.purpleColor()":
        blockColour = UIColor.purpleColor()
    default:
        println("ERROR!")
    }

但是,在每个案例行中都会出现错误,说:

Type 'String' does not conform to protocol 'IntervalType'

我确定这不是最有效的方法,也不是最简单的方法,但这是我弄清楚如何在NSUserDefaults中保存UIColor的唯一方法。

有什么问题?

编辑:前面的代码显示了如何定义bc:

var bc : String!
var blockColour : UIColor!

var userDefaults = NSUserDefaults.standardUserDefaults()

    if var blockColourString : AnyObject = userDefaults.valueForKey("blockColour") {
        blockColourString = userDefaults.valueForKey("blockColour")
        bc = blockColourString as String
    }
    else {
        var blockColourString : AnyObject = "UIColor.orangeColor()"
        userDefaults.setValue(blockColourString, forKey: "blockColour")
        bc = blockColourString as String
    }

    userDefaults.synchronize()
杰尔图顿

这是重复项,但是重复项没有快速等效项。这是未经测试的:

一种实现方法是将其存档(就像使用NSColor一样,尽管我还没有测试过):

let colorData = NSKeyedArchiver.archivedDataWithRootObject(color)
NSUserDefaults.standardUserDefaults.setObject(colorData forKey:"myColor")

并找回它:

var color : UIColor?
if let colorData = NSUserDefaults.standardUserDefaults.objectForKey("myColor") as? NSData {
    color = NSKeyedUnarchiver.unarchiveObjectWithData(colorData) as UIColor
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从 Swift 2.2 更新后,switch 和 case 语句不起作用

来自分类Dev

Swift NSCoding不起作用

来自分类Dev

KeyDown不起作用,Swift

来自分类Dev

MPMoviePlayerController不起作用-Swift

来自分类Dev

Swift SequenceType不起作用

来自分类Dev

Swift NSEvent不起作用

来自分类Dev

Swift for循环不起作用

来自分类Dev

searchBarSearchButtonClicked不起作用Swift

来自分类Dev

Swift setToolbarHidden不起作用

来自分类Dev

Swift 请求不起作用

来自分类Dev

Swift 协议不起作用

来自分类Dev

switch语句在javascript中不起作用

来自分类Dev

JavaScript中的switch语句不起作用

来自分类Dev

单击事件:switch 语句不起作用

来自分类Dev

如果if语句起作用,为什么switch不起作用

来自分类Dev

Swift-UIActionSheet事件不起作用

来自分类Dev

Swift UIApplication.setStatusBarStyle不起作用

来自分类Dev

Swift 2.2,包含方法不起作用

来自分类Dev

ADInterstitialAd在iPad Swift上不起作用

来自分类Dev

Swift-AVAudioPlayer不起作用

来自分类Dev

scheduleLocalNotification在Swift 2.0中不起作用

来自分类Dev

Swift泛型函数不起作用

来自分类Dev

关闭nsviewcontroller swift不起作用

来自分类Dev

Swift中的可选分配不起作用?

来自分类Dev

UITextField inputView在Swift中不起作用

来自分类Dev

功能在Swift中不起作用

来自分类Dev

UIAlertView在Swift中不起作用

来自分类Dev

Swift UIButton覆盖,setImage不起作用

来自分类Dev

在Swift中创建块不起作用