标签: nsnumber

想知道如何在算术运算中处理nsnumber对象

我看到了这个帖子,但想确认一下:

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

因此,基本上任何时候你想要处理这些对象,你必须解压他们的ivars,然后将它们打包回新的对象,大概是NSNumbers?

这看起来很弱(背面有很大的疼痛,没有?).

你们这些人如何使用这些?

你避开它们吗?对它们进行子类化?有可变版本吗?

这似乎是很多工作来处理它们,很想听听它们的好处以及更有经验的程序员使用它们的方式,或者他们用来避免使用它们的策略.

谢谢,

缺口

oop objective-c nsnumber

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

NSNumberFormatter显示1,000,000作为1mln等

如标题中所述,是否有任何方法可以格式化大数字,如1,000,000(1百万)或45,500,000(45,5百万)字符串,以显示此数字名称的缩短版本.我只是想阻止所有建议手动完成.我知道如何这样做.我只是想知道是否有更简单的方法使用NSNumberFormatter.

干杯,

卢卡斯

iphone formatting nsnumber nsnumberformatter ios

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

iOS 5 NSNumber Bug

这个虫子我会变得疯狂!我有这段代码在iOS 4.3上运行良好

newRegistered.ticket_id = [NSNumber numberWithInt:
[curRegistered objectForKey:@"ticket_id"] intValue]];
Run Code Online (Sandbox Code Playgroud)

如果我做 :

NSLog(@"ID before : %d, ID after : %d",
[curRegistered objectForKey:@"ticket_id"] intValue], [newRegistered.ticket_id intValue]);
Run Code Online (Sandbox Code Playgroud)

我在iOS 4.3上:

ID之前:35459,ID之后:35459

在iOS 5.0上:

ID之前:35459,ID之后:-30077

请帮忙 !谢谢你提前.

##编辑:## 我已经调查了一下这个问题.似乎问题来自于在CoreData中分配NSNumber.我应该指定上面的代码段与CoreData一起使用(newRegistered是一个NSManagedObject,而curRegistered是一个包含JSON数据的NSDictionary(只有字符串,永远不是int或long ...)).

这是具体问题:

long long test = 789654;

Registereds *a = [NSEntityDescription insertNewObjectForEntityForName:@"Registereds" inManagedObjectContext:self.managedObjectContext];
a.ticket_id = [NSNumber numberWithLongLong:test];
NSLog(@"%lld -> %@", test, a.ticket_id); // Displays 789654 -> 3222 on iOS 5 and 789654 -> 789654 on iOS 4.3

NSNumber *ticket_id = [NSNumber numberWithLongLong:test];
NSLog(@"%lld -> %@", test, …
Run Code Online (Sandbox Code Playgroud)

iphone nsnumber ios

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

带编号的NSNumber

也许这是一个愚蠢的答案,但我对ios很新.我必须在我的应用程序中以特定的方式显示一个数字.目前,我有从NSString中的服务收到的数字.但是,例如,如果我有一个数字:123456789,我需要在标签中显示为123.456.789 ..任何人都知道是否有某种方法可以做到这一点?

编辑:添加ios和iphone标签

iphone nsnumber nsnumberformatter ios

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

否定存储在NSNumber中的布尔值

我有一个带有NSNumber的托管对象,它只是一个布尔值.当用户单击按钮时,我想切换它.

self.item.completed = [NSNumber numberWithBool:![self.item.completed boolValue]];
Run Code Online (Sandbox Code Playgroud)

我缺少一种更干净(或者可能更紧凑)的方式吗?

boolean objective-c nsnumber

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

如何在调试时更改XCode中的NSNumber值?

我的类有一个成员变量,它是一个NSNumber,如下所示:

@interface C : NSObject {
    NSNumber* _n;
}
Run Code Online (Sandbox Code Playgroud)

在调试期间,我在断点处停止,我想更改NSNumber的值.我该怎么做?

我尝试了XCode变量窗口,但这不起作用.

例如,我尝试了XCode调试控制台

expr _n = @1
Run Code Online (Sandbox Code Playgroud)

但这给出了奇怪的消息错误:从不兼容的类型'NSNumber*'分配'NSNumber*' - 不开玩笑!试试吧.

我也试过了

expr _n = [NSNumber numberWithInt:1]
Run Code Online (Sandbox Code Playgroud)

但是这给了同样的东西.

debugging xcode objective-c nsnumber

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

NSPredicate与NSNumbers数组

我有一个NSNumbers 数组,例如:10015,12313,10016

我想检查数组是否包含我在searchBar中输入的整数.

我的代码:

NSPredicate *resultPredicate = [NSPredicate 
    predicateWithFormat:@"SELF CONTAINS[c] %d", [searchText intValue]];


self.searchResults = [newArr filteredArrayUsingPredicate:resultPredicate];
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber nspredicate ios

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

Objective-C NSNumber numberWithLongLong创建整数

当我尝试使用numberWithLongLong创建一个NSNumber,其数字大于-2且小于13时,它返回一个被转换为(int)的数字.

我看到这个,如果我踩到我的线后看Xcode调试器.

NSNumber* numberA = [NSNumber numberWithLongLong:-2]; //Debugger shows as (long)-2
NSNumber* numberB = [NSNumber numberWithLongLong:-1]; //Debugger shows as (int)-1
NSNumber* numberC = [NSNumber numberWithLongLong:12]; //Debugger shows as (int)12
NSNumber* numberD = [NSNumber numberWithLongLong:13]; //Debugger shows as (long)13

为了将我的问题放在上下文中,我使用了一个很长的值来创建一个纪元日期,我将最终使用BSON进行序列化并通过网络发送到Web服务.Web服务要求日期为java Long.

提前致谢

xcode objective-c nsnumber long-long

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

NSDictionary中只有属性列表对象(NSNumber),但不能在UserDefaults中存储dict

我有一个NSDictionary与NSNumbers作为值和键.这些数字代表应用程序中的某些设置,我想将字典存储在UserDefaults中.由于NSNumbers是属性列表对象,我认为这应该工作,但我检索以下错误:

*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '{ 2 = 1; }' of class '__NSDictionaryM'. Note that dictionaries and arrays in property lists must also contain only property values.

我使用的(简化)测试代码是:

NSNumber *one = [NSNumber numberWithInt:1];
NSNumber *two = [NSNumber numberWithInt:2];
NSDictionary *defaultSetting = [[NSDictionary alloc] initWithObjectsAndKeys: one, two, nil];
[[NSUserDefaults standardUserDefaults] setObject:defaultSetting forKey:@"settings"];
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我不明白它有什么问题吗?

谢谢你的时间和回复.

nsdictionary nsuserdefaults nsnumber

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

将NSString的NSArray转换为NSNumber的NSArray的更好方法

是否有更好的方法来转换NSArrayNSStringNSArrayNSNumber比下面的代码:

-(NSArray*) convertStringArrayToNumberArray:(NSArray *)strings {
    NSMutableArray *numbers = [[NSMutableArray alloc] initWithCapacity:strings.count];
    for (NSString *string in strings) {
        [numbers addObject:[NSNumber numberWithInteger:[string integerValue]]];
    }
    return numbers;
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber nsstring nsarray ios

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