问题标签 [nsnumber]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 如何在不对其执行 alloc 的情况下获得 NSNumber,因此它会响应 initWithInt?
我的理解是,诸如 [nsnumber initWithInt] 之类的“便利”方法应该创建指定类的副本,并初始化为所需的值。
Timeleft 是一个整数,因此 initWithInt 应该可以工作,结果应该是 minutesLeft(设置为保留的属性)应该接收并保留新的 NSNumber。问题是由于某种原因,我收到“NSNumber 可能无法响应 +initWithInt”的警告。因为有问题的属性设置为保留,我不想使用 [nsnumber alloc] initwithint,因为那样我必须释放它。
有任何想法吗?
uiimageview - iPhone:增加 NSNumber 和显示透明图像 (UIImageView) 的问题
我对NSNumber有疑问:我不明白如何增加和减少它!我试过 int 和 [NSNumber intValue] 等等,但它没有用!!!!我只想要一个可以在最后转换为 NSNumber 的页面计数器。
我的第二个问题是在 UIImageView 中显示(部分)透明图像。它有一个(白色)背景。
谢谢你的回答,
勒米隆赫
iphone - 将 NSString 转换为 NSNumber
我通过以下方式从 nsdictionary 获取 nsstring:
之后字符串看起来像:23,56
如何将此字符串转换为 nsnumber?
我尝试了以下方法:
但这不起作用。我认为问题在于,“分隔符”是逗号。我怎样才能解决这个问题?
问候,帕特里克
iphone - 53 * .01 = .531250
我正在将字符串日期/时间转换为数字时间值。在我的情况下,我只是用它来确定某个东西是否比其他东西新/旧,所以这个小十进制问题不是一个真正的问题。它不需要精确到秒。但它仍然让我摸不着头脑,我想知道为什么..
我的日期采用字符串格式 @"2010-09-08T17:33:53+0000"。所以我写了这个小方法来返回一个时间值。在有人跳到 28 天或 31 天的月份中有多少秒之前,我不在乎。在我的数学中,可以假设所有月份都有 31 天,而年份有 31*12 天,因为我不需要两个时间点之间的差异,只知道一个时间点是否晚于另一个时间点。
当传递上面列出的那个字符串时,结果应该是 414333.53,但它返回的是 414333.531250。
当我在每次=之间扔一个 NSLog 来跟踪它在哪里发生时,我得到了这个结果:
所以最后一个 floatValue 返回 53.0000,但是当我将它乘以 0.01 时,它变成了 .53125。我也尝试了 intValue,它做了同样的事情。
iphone - 检查 NSNumber 是否为空
如何检查 NSNumber 对象是 nil 还是空?
OK nil 很简单:
但是,如果对象已经创建,但由于分配失败,其中没有值,我该如何检查呢?使用这样的东西?
有没有一种通用的方法来测试对象的空性,比如 NSString 可用(见这篇文章)?
示例 1
包含哪个值emptyNumber
?如何检查是否emptyNumber
为空?
示例 2
如果我在emptyNumber
设置为 nil 后使用它会发生什么?
我会得到零吗?
示例 3
像这种方式 NSLog 永远不会被调用。myEmptyValue
不是nil
和不是NSNull
。所以它包含一个任意数字?
iphone - NSNumber -initWithDouble 和结果值的问题
我使用 NSNumber 来存储各种值,但有时在使用值进行计算并为结果初始化新的 NSNumber 对象时会遇到问题。我已经想出了如何克服它,但我无法终生解释它为什么会起作用,而且由于我对计算机环境中的数值(双精度数、浮点数等)的把握很弱,所以我想问这个要学习的问题。:-)
第一个例子是当我在不同的测量单位之间进行转换时,在这种特殊情况下,它在 mmol/L 和 mg/dl 之间。得到一个代表 mmol/L 值的 NSNumber,我提取它的 double 值并执行计算。然后我用 -initWithDouble 创建一个新的 NSNumber 并返回结果。
但是,我有奇怪的怪癖。如果 mmol/L 值为 10.0,则对应的 mg/dl 值为 180.0(显然,比率仅为 18)。但是当我稍后需要让用户在选择器视图中选择一个新值并使用 NSNumber -intValue 来获取当前值的整数位时(使用我自己的扩展来获取小数位),int 是 179!我在计算过程中检查了所有中间双精度值以及新 NSNumber 的双精度值,一切都很好(结果是 180.00000)。有趣的是,并非所有值都会发生这种情况,只有一些值(10.0 是一个真实的例子)。
第二个示例是当我从 Sqlite3 数据库中检索双精度值并将它们存储在 NSNumbers 中时。同样,大多数值都可以正常工作,但偶尔我会得到一些奇怪的东西。例如,如果我在数据库中保存 6.7(检查它何时保存,这实际上是值),检索后我的 NSNumber 将显示为 6.699999。(在撰写本文时,我实际上不记得这是否也是数据库中的内容,但我认为是 - 我可以稍后再检查。)
这两个实例都可以通过使用中间浮点值和 NSNumber initWithFloat 而不是 initWithDouble 来规避。因此,例如,在我的转换中,我只是做了一个 float resultAsFloat = resultAsDouble 并将 initWithFloat 用于新的 NSNumber。
为这个冗长的问题道歉,如果这只是我自己对处理数值的知识所缺乏的,但如果有人能向我解释这一点,我将不胜感激!
谢谢,
安德斯
* 编辑 1 *
单位转换示例的代码:
cocoa - 将 (u)int64_t 转换为 NSNumbers
所以基本上我的问题是这样的,我正在使用 uint64_t 对象作为键创建一个 NSMutableDictionary 。
有没有比这样做更好的方法来创建它们?
只要您没有将其包含在二进制文件/sockets/NSData 对象/任何内容中,这将起作用。但是有没有更好的方法来做到这一点?我真的很想确保该对象是 64 位的,无论我在哪个平台上运行它。
我想我可以通过始终使用 unsigned long long 来避免整个问题,但是如果我以任何重要数量分配这些对象,这当然会浪费 64 位机器上的大量堆空间......
objective-c - @"" NSNumber 的字符串类型文字
我喜欢在 Objective C 中使用该@"string"
符号对字符串文字进行速记处理。有没有办法用NSNumber
s 获得类似的行为?我更多地处理数字,[NSNumber numberWithWhatever:]
到处打电话很乏味。即使创建一个宏也可以,但我对如何最好地做到这一点的了解是有限的。
objective-c - 生成 NSArray 元素的排列
假设我有一个 NSNumber 的 NSArray,如下所示:1、2、3
然后所有可能排列的集合看起来像这样:
1、2、3
1、3、2
2、1、3
2、3、1
3, 1, 2
3、2、1
在objective-c中这样做的好方法是什么?
objective-c - 将 NSNumber 添加到数组时出错
当我的程序到达该行时: [userNumSequence addObject:[NSNumber numberWithInteger: sequenceNumber]]; 它得到错误:程序接收信号:“EXC_BAD_ACCESS”。
我想要做的就是在数组中存储一个整数。