我看到了这个帖子,但想确认一下:
因此,基本上任何时候你想要处理这些对象,你必须解压他们的ivars,然后将它们打包回新的对象,大概是NSNumbers?
这看起来很弱(背面有很大的疼痛,没有?).
你们这些人如何使用这些?
你避开它们吗?对它们进行子类化?有可变版本吗?
这似乎是很多工作来处理它们,很想听听它们的好处以及更有经验的程序员使用它们的方式,或者他们用来避免使用它们的策略.
谢谢,
缺口
如标题中所述,是否有任何方法可以格式化大数字,如1,000,000(1百万)或45,500,000(45,5百万)字符串,以显示此数字名称的缩短版本.我只是想阻止所有建议手动完成.我知道如何这样做.我只是想知道是否有更简单的方法使用NSNumberFormatter.
干杯,
卢卡斯
这个虫子我会变得疯狂!我有这段代码在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) 也许这是一个愚蠢的答案,但我对ios很新.我必须在我的应用程序中以特定的方式显示一个数字.目前,我有从NSString中的服务收到的数字.但是,例如,如果我有一个数字:123456789,我需要在标签中显示为123.456.789 ..任何人都知道是否有某种方法可以做到这一点?
编辑:添加ios和iphone标签
我有一个带有NSNumber的托管对象,它只是一个布尔值.当用户单击按钮时,我想切换它.
self.item.completed = [NSNumber numberWithBool:![self.item.completed boolValue]];
Run Code Online (Sandbox Code Playgroud)
我缺少一种更干净(或者可能更紧凑)的方式吗?
我的类有一个成员变量,它是一个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)
但是这给了同样的东西.
我有一个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) 当我尝试使用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.
提前致谢
我有一个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)
为什么这不起作用?我不明白它有什么问题吗?
谢谢你的时间和回复.
是否有更好的方法来转换NSArray的NSString到NSArray的NSNumber比下面的代码:
-(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) nsnumber ×10
objective-c ×6
ios ×5
iphone ×3
xcode ×2
boolean ×1
debugging ×1
formatting ×1
long-long ×1
nsarray ×1
nsdictionary ×1
nspredicate ×1
nsstring ×1
oop ×1