2014-07-02 33 views
0

我有一个的UITextField“用户id”有即4578.的UITextField到iBeacon显示主要的Xcode

我想将其转换成一个比较的格式中有一个四位数字,所以我可以在iBeacon.major使用值。

我已经尝试了很多方法我最后一次是:

long long myLongLong   = [userId.text longLongValue]; 
    NSNumber *anumber  = [NSNumber numberWithLongLong:myLongLong]; 

NSUUID * uid2 = [[NSUUID alloc] initWithUUIDString:@"INTT1345-2C29-40E0-8E1E-1D7A9E5D0964"]; 
    self.beaconRegion2 = [[CLBeaconRegion alloc] initWithProximityUUID:uid2 
                   major:anumber 
                  identifier:@"IDENTIFIER"]; 

,但他们都没有工作,我不断收到以下错误。

incompatable pointer to interger conversion sending 'NSNumber *_strong' to parameter of type 'CLBeaconMajorValue' (aka'unsigned short') 

有人可以帮助我走出这个

回答

0

试试这个:

NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init]; 
userIdInt = [formatter numberFromString:self.major.text].intValue; 

ARC之前,你也可以在文本字段转换为整数这样的:

int userIdInt = [userId.text intValue]; 

在将其放入主要价值之前,您应该先做一些验证。确保它不是> 65535或< 0,因为这些值是不允许的。就像这样:

if (major == nil || major.intValue < 0 || major.intValue > 65535) { 
    NSLog(@"major is NOT a legal value: %@", major); 
} 
else { 
    NSLog(@"major is a legal value: %@", major); 
} 
+0

这仍然给我的错误,我想有相同的数字,是在textFiels是一个在主要价值 – user1114881

+0

看到我的更新答案 – davidgyoung