我今天开始使用apple swift(和许多其他人一样;))并且我在阅读plist时很费劲.
我从我的info.plist中读取了一个plist条目,这是一个NSArray,其中每个条目都是一个Dictionary.
let regionsToMonitor = NSBundle.mainBundle().infoDictionary["Regions"] as Array> 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
你必须施展价值.
既然CLBeaconMajorValue
是a UInt16
typealias
,你可以这样做:
let m = UInt16(major!)
你甚至可以这样做:
let m = CLBeaconMajorValue(major!)