问题标签 [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.

0 投票
2 回答
2194 浏览

iphone - 如何在不对其执行 alloc 的情况下获得 NSNumber,因此它会响应 initWithInt?

我的理解是,诸如 [nsnumber initWithInt] 之类的“便利”方法应该创建指定类的副本,并初始化为所需的值。

Timeleft 是一个整数,因此 initWithInt 应该可以工作,结果应该是 minutesLeft(设置为保留的属性)应该接收并保留新的 NSNumber。问题是由于某种原因,我收到“NSNumber 可能无法响应 +initWithInt”的警告。因为有问题的属性设置为保留,我不想使用 [nsnumber alloc] initwithint,因为那样我必须释放它。

有任何想法吗?

0 投票
2 回答
589 浏览

uiimageview - iPhone:增加 NSNumber 和显示透明图像 (UIImageView) 的问题

我对NSNumber有疑问:我不明白如何增加减少它!我试过 int 和 [NSNumber intValue] 等等,但它没有用!!!!我只想要一个可以在最后转换为 NSNumber 的页面计数器。

我的第二个问题是在 UIImageView 中显示(部分)透明图像。它有一个(白色)背景。

谢谢你的回答,
勒米隆赫

0 投票
1 回答
1276 浏览

iphone - 将 NSString 转换为 NSNumber

我通过以下方式从 nsdictionary 获取 nsstring:

之后字符串看起来像:23,56

如何将此字符串转换为 nsnumber?

我尝试了以下方法:

但这不起作用。我认为问题在于,“分隔符”是逗号。我怎样才能解决这个问题?

问候,帕特里克

0 投票
5 回答
355 浏览

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,它做了同样的事情。

0 投票
5 回答
29456 浏览

iphone - 检查 NSNumber 是否为空

如何检查 NSNumber 对象是 nil 还是空?

OK nil 很简单:

但是,如果对象已经创建,但由于分配失败,其中没有值,我该如何检查呢?使用这样的东西?

有没有一种通用的方法来测试对象的空性,比如 NSString 可用(见这篇文章)?

示例 1

包含哪个值emptyNumber?如何检查是否emptyNumber为空?

示例 2

如果我在emptyNumber设置为 nil 后使用它会发生什么?

我会得到零吗?

示例 3

像这种方式 NSLog 永远不会被调用。myEmptyValue不是nil和不是NSNull。所以它包含一个任意数字?

0 投票
2 回答
799 浏览

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 *

单位转换示例的代码:

0 投票
1 回答
9127 浏览

cocoa - 将 (u)int64_t 转换为 NSNumbers

所以基本上我的问题是这样的,我正在使用 uint64_t 对象作为键创建一个 NSMutableDictionary 。

有没有比这样做更好的方法来创建它们?

只要您没有将其包含在二进制文件/sockets/NSData 对象/任何内容中,这将起作用。但是有没有更好的方法来做到这一点?我真的很想确保该对象是 64 位的,无论我在哪个平台上运行它。

我想我可以通过始终使用 unsigned long long 来避免整个问题,但是如果我以任何重要数量分配这些对象,这当然会浪费 64 位机器上的大量堆空间......

0 投票
4 回答
7038 浏览

objective-c - @"" NSNumber 的字符串类型文字

我喜欢在 Objective C 中使用该@"string"符号对字符串文字进行速记处理。有没有办法用NSNumbers 获得类似的行为?我更多地处理数字,[NSNumber numberWithWhatever:]到处打电话很乏味。即使创建一个宏也可以,但我对如何最好地做到这一点的了解是有限的。

0 投票
5 回答
5509 浏览

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中这样做的好方法是什么?

0 投票
1 回答
172 浏览

objective-c - 将 NSNumber 添加到数组时出错

当我的程序到达该行时: [userNumSequence addObject:[NSNumber numberWithInteger: sequenceNumber]]; 它得到错误:程序接收信号:“EXC_BAD_ACCESS”。

我想要做的就是在数组中存储一个整数。