标签: nsnumber

将NSNumber(double)值转换为时间

我尝试将像"898.171813964844"这样的值转换为00:17:02(hh:mm:ss).

如何在目标c中完成?

感谢帮助!

objective-c nsnumber

16
推荐指数
2
解决办法
3万
查看次数

检查NSArray是否包含一些int

我有一个NSMutableArrayNSNumbers.基本上我只是想检查NSNumbers数组中是否有任何值=某个值.

我可以遍历数组,逐个检查,这绝不是最佳选择.

我也试过并且使用失败containsObject,因为这只有在id相同的情况下才有效.

我读了一些关于NSPredicate这个问题的解决方案,但我不确定如何使用它NSArray.

任何答案都表示赞赏.

谢谢

objective-c nsnumber nsmutablearray nspredicate

16
推荐指数
3
解决办法
1万
查看次数

目标c:检查整数/整数/数字

在目标c中,我如何检查字符串/ NSNumber是整数还是整数

variables int objective-c nsnumber nsstring

15
推荐指数
2
解决办法
3万
查看次数

如何将带有数字的字符串转换为具有逗号而非小数点的NSDecimalNumber?

我有一个界面给我这样的数字0000000012345,78

所以我想出了如何用它们制作一个数字.但我需要用这个数字计算,我实际需要的是一个十进制数.

NSNumberFormatter *fmtn = [[NSNumberFormatter alloc] init];
[fmtn setFormatterBehavior:NSNumberFormatterBehavior10_4];
[fmtn setNumberStyle:NSNumberFormatterDecimalStyle];
[fmtn setDecimalSeparator:@","];
NSNumber *test = [fmtn numberFromString:@"0000000012345,78"];
Run Code Online (Sandbox Code Playgroud)

如何将NSNumber设为NSDecimalNumber?

编辑:这是我最终得到的代码:

NSDictionary *localeDict = [NSDictionary dictionaryWithObject:@"," forKey:@"NSDecimalSeparator"];
NSDecimalNumber *test = [[NSDecimalNumber alloc] initWithString:@"00000000012345,78" locale:localeDict];
Run Code Online (Sandbox Code Playgroud)

如何将语言环境字典放在一起不能被描述为"记录良好",并且我花了一些谷歌搜索来找到一个例子.

这个也有效:

NSLocale *deLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"de"];
NSDecimalNumber *testd = [NSDecimalNumber decimalNumberWithString:@"00000000012345,78" locale:deLoc];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsnumber nsnumberformatter

14
推荐指数
2
解决办法
8645
查看次数

Objective-C将整数转换为十六进制值

我有一个像这样初始化的字典......

keyDictionary = [[NSDictionary dictionaryWithObjects:values forKeys:keys]retain];
Run Code Online (Sandbox Code Playgroud)

其中keysNSArray字母和其他字符values的一个NSArray,是unsigned chars的一个,它们是这些字符的USB十六进制密钥代码.

USB密钥代码是十六进制值,范围从0x04到0xE7.我正在尝试根据键盘上按下的键创建这两者之间的地图.

这个values数组是这样创建的......

NSArray *values = [NSArray arrayWithObjects: 
                  [NSNumber numberWithUnsignedChar:0x04]/*A*/,
                  [NSNumber numberWithUnsignedChar:0x05]/*B*/, /*ETC*/]; 
Run Code Online (Sandbox Code Playgroud)

理想情况下,当我运行此代码时...在哪里 character == @"I"

- (uint8) getUSBCode:(NSString *)character
{
    NSNumber *val = [keyDictionary objectForKey:character];

    return (uint8)[val unsignedCharValue];
}
Run Code Online (Sandbox Code Playgroud)

我希望能够回来0x0C,但是我作为一个int得到12回归(在我想到之后,这是有道理的).我需要保留十六进制值.我不需要字符串值.我需要直接转换为十六进制值或更好的存储方式

uint8 只是一个typedef unsigned char.

编辑 我之前发布时并不清楚.这就是我需要的.

我需要这些代码的十六进制值,因为它们是通过内部公司网络发送的.此外,按下的键的值正在从big endian(或者很少,它正在逃避我现在的哪一个)转换到另一个,然后通过内部网络传输.我知道这些值存储在二进制文件中,但我需要以十六进制格式传输它们.

另外,我说我从这个功能回来了12.我从调试器中读到12,实际上没有得到这个值.这可能就是我迷茫的原因.

objective-c nsnumber

14
推荐指数
1
解决办法
3万
查看次数

在字典中存储整数

据我所知,在Objective-C中,您只能将对象放入词典中.因此,如果我要创建一个字典,它必须拥有所有对象.这意味着我需要把我的注意力作为NSNumber,对吧?

SOO ...

NSNumber *testNum = [NSNumber numberWithInt:varMoney];


NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:@"OMG, Object 1!!!!" forKey:@"1"];
[dictionary setObject:@"Number two!" forKey:@"2"];
[dictionary setObject:testNum forKey:@"3"];


NSNumber *retrieved = [dictionary objectForKey:@"3"];
int newVarMoney = [retrieved intValue];
Run Code Online (Sandbox Code Playgroud)

其中varMoney是先前声明的int.我的问题是,有没有更好的方法将"int"存储在字典中而不是将其存入NSNumber?

谢谢!

编辑:04/25/13

我问这个问题已经很久了.对于将来遇到困难的人来说,有更简单的方法可以使用Apple LLVM Compiler 4.0,它在Xcode中默认为一点.(弧)

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:@1337 forKey:@"1"];
Run Code Online (Sandbox Code Playgroud)

就是这样,使用@ 1337语法快速创建NSNumber对象.与变量一起使用,所以我的上面可能变成:

[dictionary setObject:@(varMoney) forKey:@"3"];
Run Code Online (Sandbox Code Playgroud)

要么

dictionary[@"mykey"] = @1337;
Run Code Online (Sandbox Code Playgroud)

简单.

iphone dictionary integer objective-c nsnumber

13
推荐指数
2
解决办法
9032
查看次数

如何转换NSNumber对象用于计算目的?

我正在开发一些代码,其中我使用扫描程序从字符串中获取NSNumbers,比如x和y.

现在我想从x和y计算一些简单的东西,比如z = 10.0 /(x + y/60.0)/60.0).我不能直接这样做,因为编译器不喜欢应用于数字对象的普通算术符号.

所以,我尝试定义类型为double的xD和yD,然后尝试进行类型转换

xD =(double)x; yD =(double)y;

但这也给出了编译错误.如何将NSNumber对象转换为在普通算术表达式中使用?我做了相当多的文献浏览,但没有找到答案.

在此先感谢您的帮助.

约翰多纳

nsnumber

13
推荐指数
1
解决办法
2万
查看次数

将整数添加到NSMutableArray

我无法在任何地方找到这个,所以我只是要求确认.是的,我知道它是基本的,但我想在我犯错百万次之前我宁愿做到这一点:

如果我执行以下操作,默认情况下是否将"0"转换为NSNumber(如果不是,它是什么对象类型),还是我必须执行第二个代码?

(或者这两个对我正在尝试的事情都可能是错误的.如果是这样,请告诉我.他们都编译,所以我只是想知道哪一个是"正确"(或首选)以及为什么.)

代码1:

NSMutableArray array = [[[NSMutableArray alloc] init]];
[array addObject: 0];
Run Code Online (Sandbox Code Playgroud)

代码2:

NSMutableArray array = [[NSMutableArray alloc] init];
[array addObject: [NSNumber numberWithInt: 0]];
Run Code Online (Sandbox Code Playgroud)

arrays object objective-c nsnumber

13
推荐指数
2
解决办法
2万
查看次数

Swift:CInt到Int转换?

在Swift中将CInt转换为Int(本机整数类型)的最简洁方法是什么?现在我正在使用:

NSNumber.numberWithInt(myCInt).integerValue
Run Code Online (Sandbox Code Playgroud)

这是首选方法吗?

integer casting type-conversion nsnumber swift

13
推荐指数
1
解决办法
9498
查看次数

iOS - 当我将两个NSNumber与"=="进行比较时,为什么它可以工作?

在我的应用程序中,我在比较两个NSNumber对象时不小心使用了"==" :

NSNumber *number1;
NSNumber *number2;
Run Code Online (Sandbox Code Playgroud)

后来,在设置了这些对象的int值后,我不小心这样做了:

if (number1 == number2) {
    NSLog(@"THEY'RE EQUAL");
}
Run Code Online (Sandbox Code Playgroud)

而且,令人困惑的是,它有效!我可以发誓我被教导这样做:

if (number1.intValue == number2.intValue) {
    NSLog(@"THEY'RE EQUAL");
}
Run Code Online (Sandbox Code Playgroud)

如何在两个NSNumber对象之间使用"==" ,为什么?这是否意味着可以通过这种方式对它们进行比较,还是只是一个侥幸,这通常不能保证每次都有效?这真让我困惑:(

compare objective-c nsnumber ios

13
推荐指数
2
解决办法
908
查看次数