使用SharedDefault共享图像Alpha值

时间:2015-05-13 16:48:07

标签: ios swift nsuserdefaults

在我的应用程序中,我根据上下文设置3个图像的alpha值。我想使用sharedDefault将该alpha值传递给apple watch。然后将相同的alpha值设置为手表上的相应图像。我知道如何传递一个字符串,但没有值。任何帮助,将不胜感激。这是我在主应用程序上的代码:

            if grandTotalPax <=  90 {
            let sharedDefaults = NSUserDefaults(suiteName:"group.birkyboy.CrewStaffingTodayExtension")

            sharedDefaults!.setDouble(1, forKey: "totalfull")
            sharedDefaults!.setDouble(0.3, forKey: "totalmoyen")
            sharedDefaults!.setDouble(0.3, forKey: "totalempty")

            totalFull.alpha = 1
            totalMoyen.alpha = 0.2
            totalEmpty.alpha = 0.2
            }

1 个答案:

答案 0 :(得分:0)

我不确定这是否能回答你的问题,因为这似乎并不清楚,因为你正在采用正确的方法来设定价值。

如果您想在iOS设备和Apple Watch之间共享价值,那就非常简单了。

首先,我假设您已经为两个目标(设备和监视)定义了AppGroups

其次,你需要得到NSUserDefaults这样的

if let sharedDefaults = NSUserDefaults(suiteName: "group.birkyboy.CrewStaffingTodayExtension") {
  // Do your stuffs here
}

if块内,您可以按照您的方式定义值。

sharedDefaults.setFloat(0.3, "totalempty") // Look I'm using float because is less expensive than double and fits the range alpha values you need.

之后,您应该像这样保存NSUserDefaults

if sharedDefaults.synchronize() {
  // syncrhonized succeffully
}

如果不执行此操作,您将永远不会保存共享默认值。

在观看时,您可以像这样轻松获取值:

if let sharedDefaults = NSUserDefaults(suiteName: "group.birkyboy.CrewStaffingTodayExtension") {
  let alpha: Float = sharedDefaults.floatForKey("totalempty") // if this key does not exist, this will return 0.
}

我希望这可以帮到你。