草庐IT

nsnumber

全部标签

iphone - 将 NSNumber 转换为 BOOL Objective-C

我想将整数0和1转换为BOOLEANYES和NO我的代码:NSNumber*num=0;BOOLmyBool=[numboolValue];NSLog(@"boolis:%@",myBool);输出为(null)有什么问题吗? 最佳答案 首先,你的NSNumber的初始化是不正确的。您应该使用定义在NSNumber:上的+numberWith:类方法之一+(NSNumber*)numberWithChar:(char)value;+(NSNumber*)numberWithUnsignedChar:(unsignedchar)val

ios - NSDate 变成 NSNumber MYSTERY

我在使用自动引用计数的iOS4.3和iOS5中工作。我在我的界面中声明了一个NSDate对象:NSDate*fingerprintsDate;稍后,我设置了NSDate-使用调试器并逐步执行它具有我期望的值:fingerprintsDate=[NSDatedate];最后,我尝试从日期中获取时间:if(fingerprintsDate==nil||[fingerprintsDatetimeIntervalSinceNow]>6)这就是它因无法识别的选择器而崩溃的地方:“2012-01-1823:07:46.662Netapporter[473:707]-[NSCFNumbertimeI

ios - 将 'NSNumber *__strong' 发送到不兼容类型 'CLLocationDegrees' 的参数(又名 'double' )

NSNumber*latitude=[NSNumbernumberWithDouble:[[cityDictionaryvalueForKeyPath:@"coordinates.latitude"]doubleValue]];NSNumber*longitude=[NSNumbernumberWithDouble:[[cityDictionaryvalueForKeyPath:@"coordinates.longitude"]doubleValue]];CLLocation*listingLocation=[[CLLocationalloc]initWithLatitude:lati

iphone - 为什么 NSNumber 类不能正确地将我的 NSString 对象转换为 long long?

我正在尝试将NSString对象转换为具有相同数值的NSNumber。当我使用此语句创建NSString对象时...NSString*songID=[localNotif.userInfoobjectForKey:@"SongID"];varsongID包含字符串值@"10359537395704663785"。当我尝试使用语句将其转换为NSNumber对象时...NSNumber*songIDNumber=[NSNumbernumberWithLongLong:[songIDlongLongValue]];varsongIDNumber包含错误的值922337203685477580

ios - 将长 NSString 转换为 NSNumber

我无法可靠地将较长的NSString转换为NSNumber。具体来说,我正在将MPMediaEntityPropertyPersistentID作为字符串转换为NSNumber有时它可以工作,但通常不会。转化码:NSString*keke=[jsonArrayobjectForKey:@"next"];NSNumberFormatter*f=[[NSNumberFormatteralloc]init];[fsetNumberStyle:NSNumberFormatterDecimalStyle];NSNumber*persistentIDasNumber=[fnumberFromStr

ios - NSNumber 原始值相等与 isEqualToNumber 与 Obj-C 文字

既然我们在Objective-C中有了带有编译器支持的NSNumber字面量,是否有更好的方法将NSNumber与已知整数值进行比较?老办法是[myNumberintegerValue]==5现在我们可以执行[myNumberisEqualToNumber:@5]甚至[myNumberisEqualToNumber:@(someVariable)]。isEqualToNumber:方法是否有优势,或者我们应该坚持使用integerValue除非要比较的值已经是NSNumber?我看到的一个优势是,如果someVariable从NSInteger更改为CGFloat,则新方法不需要更改代

ios - 从 NSNumber 获取 CGFloat 的最常见和正确的做法是什么?

我的工作代码是这样的:NSNumber*n=@42.42;CGFloatcgf=0;CFNumberRefcfn=CFBridgingRetain(n);CFNumberGetValue(cfn,kCFNumberCGFloatType,&cgf);CFRelease(cfn);还有可能CGFloatcgf=(CGFLOAT_IS_DOUBLE)?[ndoubleValue]:[nfloatValue];但这对我来说闻起来更难闻。在我看来,应该有更好的API来完成这种常见的事情。有没有? 最佳答案 无论如何这都会得到正确的结果:NS

ios - 向上舍入 NSNumber

NSNumberFormatter*formatNumber=[[NSNumberFormatteralloc]init];[formatNumbersetRoundingMode:NSNumberFormatterRoundUp];[formatNumbersetMaximumFractionDigits:0];NSNumber*height=[formatNumbernumberFromString:self.heightField.text];NSNumber*width=[formatNumbernumberFromString:self.widthField.text];NS

iphone - 如何在 if 中比较 NSNumber

如何:if(myNSNumber==1){...}这似乎没有建立对象: 最佳答案 如果myNSNUber是NSNumber,你的代码应该是这样的,if([myNSNumberintValue]==1){...}如果是NSInteger,可以直接和整型字面量比较。因为NSInteger是原始数据类型。if(myNSNumber==1){...}注意:确保您的声明中没有*。你的NSInteger声明应该是这样的,NSIntegermyNSNUmber;//RIGHTNSInteger*myNSNUmber;//WRONG,NSInteg

objective-c - 从 NSArray 中的 NSNumber 获取整数值

我有一个NSArray,其中包含具有int值的NSNumber对象:arrayOfValues=[[[NSArrayalloc]initWithObjects:[NSNumbernumberWithInt:1],[NSNumbernumberWithInt:3],[NSNumbernumberWithInt:5],[NSNumbernumberWithInt:6],[NSNumbernumberWithInt:7],nil]autorelease];[arrayOfValuesretain];我正在尝试像这样遍历数组:intcurrentValue;for(inti=0;i我在这里做错