草庐IT

nsnumber

全部标签

objective-c - 为什么 NSNumber 文字不能用于静态声明

我声明:staticNSString*a=@"a";这是iOS6中的正确声明(使用编译器版本应该更正确,但我暂时不知道)。我认为数字文字也一样:staticNSNumber*b=@1;可以是一个有效的声明。编译器告诉我initializer元素不是编译时常量。这让我有点吃惊。由于NSNumber与NSString一样是不可变的,并且由于我在字符串情况下使用文字,所以我认为它也可能有效。有人对这种差异有合理的解释吗? 最佳答案 第一行是编译时常量,因为您分配的是@"a"而不是staticNSString*a=[NSStringstri

iphone - 核心数据 bool 属性 NSNumber 不记得它是 bool 值

我有一个模型,其属性如下所示:当我设置它的值时,例如:model.isResolved=@YES;保存在模型中的NSNumber“忘记”了它是一个bool值:NSLog(@"%@",strcmp([self.isResolvedobjCType],@encode(BOOL))==0?@"equal":@"different");打印“不同”。这是怎么回事? 最佳答案 Whatisupwiththat?来自documentation:Notethatnumberobjectsdonotnecessarilypreservethetyp

Swift:NSNumber 不是 Float 的子类型

我在playground中尝试了SwiftProgrammingLanguage中的代码并收到以下错误“NSNumber不是Float的子类型”,我只是通过在structPoint中创建Float类型的x和y来稍微修改它。我错过了什么?如果我将Float类型添加到centerX和centerY,我会收到错误消息:找不到接受所提供参数的'/'的重载。 最佳答案 错误消息与实际错误完全无关...实际错误是无法将Double转换为Float。在Size中,x和y是Double(浮点字面量的默认类型)但是在Point、width和heigh

ios - 如何为 NSNumbers 数组的数组定义 Objective-C 轻量级泛型?

我有一个属性为NSArray的对象包含其他NSArray的NSNumber秒。我在头文件中的属性定义中添加了一个轻量级泛型,如下所示:@property(strong,nonatomic,readonly)NSArray*myArray;生成的Swift界面显示:publicvarmyArray:[[AnyObject]]{get}有没有办法可以进一步标记我的属性声明以表明这实际上是[[NSNumber]]?当我尝试NSArray>*myArray;时编译器对我很生气或NSArray*myArray;. 最佳答案 @property

ios - Swift sortinplace 二元运算符 > 不能应用于两个 nsnumber 操作数

我一直在尝试快速学习核心数据。我有一个数组,其中填充了具有各种属性的Person核心数据对象。以下是我遇到问题的属性:@NSManagedvarid:Int在我的托管对象模型中,id属性设置为Int32。我发现在64位架构上使用它会引发错误:PropertysetId:isa64bitscalartypeonclass'Person'thatdoesnotmatchitsentity'sproperty's32bitscalarttype.....如果我理解正确我设备使用64位Int而不是32位,这就是为什么我应该使用@NSManagedvarid:NSNumber?反而。我在pers

Swift- 无法使用类型为(NSNumber、NSTimeinterval)的参数列表调用 '-'

我正在尝试从应用程序的起点获取从某个点开始的当前时间。varstartTime=NSDate.timeIntervalSinceReferenceDate()varcurrentTime:NSNumber=0forvari=0;i我得到这个错误:Cannotinvoke'-'withanargumentlistoftype'(@!ValueNSNumber,@!ValueNSTimerinerval)我知道这是我无法弄清楚的类型,有什么建议吗? 最佳答案 startTime是一个NSTimeInterval,它与NSNumber不同

ios - 从 'Int?' 转换为无关类型 'NSNumber' 总是失败

当我尝试执行下面的行时,我没有收到警告(不是错误)。这是我在做什么坏事吗?我正在尝试将整数earningsSoFar转换为NSNumber,因为我想从中获取.stringValue。我想了解这里的警告是什么意思以及如何正确执行此操作。self.tv_salaryNumber.text=(earningsSoFaras!NSNumber).stringValue 最佳答案 你可以用这种方式将Int转换为NSNumberleta:Int?=10letb=a!asNSNumber所以,在你的代码中,试试self.tv_salaryNumb

ios - 在 Swift 中使用 NSNumber numberWithBool

我提交了我的应用程序的第2版以供审核,但由于对iCloud的高备份而被拒绝-我不知道这一点,因为我只需要在我的应用程序中添加图片,但无论如何。现在我尝试转换该代码NSError*error=nil;NSURL*databaseUrl=[NSURLfileURLWithPath:databasePath];BOOLsuccess=[databaseUrlsetResourceValue:[NSNumbernumberWithBool:YES]forKey:NSURLIsExcludedFromBackupKeyerror:&error];if(!success){NSLog(@"Erro

ios - 将 NSNumber 转换为 Float 时的意外行为

升级到Xcode9.3(9E145)后,我的应用出现了一些意外行为。问题似乎在于将NSNumber转换为Float。为此,我使用as类型转换运算符。请参阅以下示例。letn=NSNumber.init(value:1.12)letm=NSNumber.init(value:1.00)letx=nas?Floatlety=mas?Floatletxd=nas?Doubleletz=Float(truncating:n)这里,第一次转换失败,即x==nil。第二次转换成功,使用init:truncating构造函数的Float实例化也成功,即z==1.12。将n转换为Double成功,这对

ios - 桥接 'NSNumber' 到 'Int' 警告

这个警告是我应该关注的吗?如果是这样,解决方案是什么?这是我的职能:overridefuncprepare(forsegue:UIStoryboardSegue,sender:Any?){ifletdestination=segue.destinationas?ProfileViewController{letcell=senderas!UITableViewCellletselectedRow=myTableView.indexPath(for:cell)!.rowswitch(mySegmentedControl.selectedSegmentIndex){case0:destin