诠释?到CLBeaconMajorValue

Dai*_*jan 5 ios swift

我今天开始使用apple swift(和许多其他人一样;))并且我在阅读plist时很费劲.

我从我的info.plist中读取了一个plist条目,这是一个NSArray,其中每个条目都是一个Dictionary.

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

for regionToMonitor in regionsToMonitor {
    ...
Run Code Online (Sandbox Code Playgroud)

每个地区的一个关键是一个专业.用objC术语表示NSNumber.我把它读作:

let major: Int? = regionToMonitor["major"] ? regionToMonitor["major"]!.integerValue : nil;
Run Code Online (Sandbox Code Playgroud)

现在我需要它作为CLBeaconMajorValue

所以我试着把它投到那个 as

                clRegion = CLBeaconRegion(proximityUUID: uuid,
                    major: major! as CLBeaconMajorValue,
                    identifier: identifier)
Run Code Online (Sandbox Code Playgroud)

不起作用.UUID和标识符可以工作(我已经检查过另一个构造函数,但不是init

这也不好

                let m = major! as CLBeaconMajorValue
Run Code Online (Sandbox Code Playgroud)

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

Lea*_*ros 7

你必须施展价值.

既然CLBeaconMajorValue是a UInt16 typealias,你可以这样做:

let m = UInt16(major!)
Run Code Online (Sandbox Code Playgroud)

你甚至可以这样做:

let m = CLBeaconMajorValue(major!)
Run Code Online (Sandbox Code Playgroud)