【问题标题】:Int? to CLBeaconMajorValue诠释?到 CLBeaconMajorValue
【发布时间】:2014-06-02 23:57:44
【问题描述】:

我今天从 apple swift 开始(和其他许多人一样;))我在阅读 plist 时遇到了困难。

我从我的 info.plist 中读取了一个 plist 条目,它是一个 NSArray,其中每个条目都是一个字典。

let regionsToMonitor = NSBundle.mainBundle().infoDictionary["Regions"] as Array<Dictionary<String,AnyObject>>

for regionToMonitor in regionsToMonitor {
    ...

每个地区的一个关键是一个专业。在 objC 术语中是一个 NSNumber。我把它读成:

let major: Int? = regionToMonitor["major"] ? regionToMonitor["major"]!.integerValue : nil;

现在我需要它作为 CLBeaconMajorValue

所以我尝试使用as 将其转换为那个

                clRegion = CLBeaconRegion(proximityUUID: uuid,
                    major: major! as CLBeaconMajorValue,
                    identifier: identifier)

不起作用。 UUID 和标识符确实有效(我已经检查了另一个构造函数,但不是 init

这也不好

                let m = major! as CLBeaconMajorValue

如何转换我的 NSNumber / int?到 CLBeaconMajorValue

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    你必须转换值。

    由于CLBeaconMajorValueUInt16 typealias,你可以这样做:

    let m = UInt16(major!)
    

    你甚至可以这样做:

    let m = CLBeaconMajorValue(major!)
    

    【讨论】:

    • 为什么选择 CLBeaconMajorValue(x)?
    • 让 m = 专业!作为 CLBeaconMajorValue -- 那是我的尝试
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2016-02-16
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多