我今天开始使用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
你必须施展价值.
既然CLBeaconMajorValue是a UInt16 typealias,你可以这样做:
let m = UInt16(major!)
Run Code Online (Sandbox Code Playgroud)
你甚至可以这样做:
let m = CLBeaconMajorValue(major!)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |