Ios NSMutableDictionary中的数字
我正在尝试设置一个字典,使其具有一个带有数字值(需要递增)的字符串键 这就是我用值1初始化的方式Ios NSMutableDictionary中的数字,ios,objective-c,Ios,Objective C,我正在尝试设置一个字典,使其具有一个带有数字值(需要递增)的字符串键 这就是我用值1初始化的方式 [person.list setObject:[NSNumber numberWithInteger:1] forKey:name]; 我该如何根据需要递增该值?如果它的顺序递增比静态整数更有用 static int increment = 1; [person.list setObject:[NSNumber numberWithInteger:increment++] forKey:name
[person.list setObject:[NSNumber numberWithInteger:1] forKey:name];
我该如何根据需要递增该值?如果它的顺序递增比
静态
整数
更有用
static int increment = 1;
[person.list setObject:[NSNumber numberWithInteger:increment++] forKey:name];
如果您不知道
静态
变量,这个问题可能会有帮助。如果它的顺序增量比静态
整数有用
static int increment = 1;
[person.list setObject:[NSNumber numberWithInteger:increment++] forKey:name];
如果您不知道
静态变量,这个问题可能会很有帮助。不太确定您想要实现什么,但一个解决方案可能是
[person.list setObject:[NSNumber numberWithInteger:person.list.count+1] forKey:name];
我不太确定你想要实现什么,但有一个解决方案是
[person.list setObject:[NSNumber numberWithInteger:person.list.count+1] forKey:name];
从字典中获取键的对象,进行修改,然后将该对象添加到同一键的字典中,这将替换以前的对象
NSInteger number = [[dict objectForKey:name] integerValue];
number+=1;
[dict setObject:[NSNumber numberWithInteger:number] forKey:name];
从字典中获取键的对象,进行修改,然后将该对象添加到同一键的字典中,这将替换以前的对象
NSInteger number = [[dict objectForKey:name] integerValue];
number+=1;
[dict setObject:[NSNumber numberWithInteger:number] forKey:name];
首先,确保person.list
是NSMutableDictionary
的一个实例(也可能希望将person上的list属性更改为其他名称。list表示类似数组的结构,而不是字典。)
您可以使用新的NSDictionary语法和原语到对象装箱
person.list[name] = @([person.list[name] unsignedIntegerValue] + 1);
在语法上类似于(为了可读性,分成多行)
@(…)
语法转换a。而[name]
语法是NSMutableDictionary的setObject:forKey:
的缩写。首先,确保person.list
是NSMutableDictionary
的一个实例。(还可能需要将person的list属性更改为其他名称。list表示类似数组的结构,而不是字典。)
您可以使用新的NSDictionary语法和原语到对象装箱
person.list[name] = @([person.list[name] unsignedIntegerValue] + 1);
在语法上类似于(为了可读性,分成多行)
@(…)
语法转换a。而[name]
语法是NSMutableDictionary的setObject:forKey:
的缩写,使用sweet ass类别
@interface NSNumber (NSNumber_Incrementing)
-(NSNumber *)increment;
@end
@implementation NSNumber (NSNumber_Incrementing)
-(NSNumber *)increment {
return [NSNumber numberWithInt:[self intValue] + 1];
}
[person.list setObject:[mynumb increment] forKey:name];
那意味着你需要保持我的麻木
为NSDecimal等人添加协议
@protocol Incrementing
- (NSNumber *)increment;
@end
so the above might be
@interface NSNumber (NSNumber_Incrementing) <Incrementing>
...
@interface NSDecimableNumber (NSNumber_Incrementing) <Incrementing>
valueForKey和setValue属于NSDictionary。您正在使用提供objectForKey和setObject的NSMutableDictionary…因此,如果需要,请改为这样做
是的。并为与数字无关的键添加一些例外
使用甜屁股类别
@interface NSNumber (NSNumber_Incrementing)
-(NSNumber *)increment;
@end
@implementation NSNumber (NSNumber_Incrementing)
-(NSNumber *)increment {
return [NSNumber numberWithInt:[self intValue] + 1];
}
[person.list setObject:[mynumb increment] forKey:name];
那意味着你需要保持我的麻木
为NSDecimal等人添加协议
@protocol Incrementing
- (NSNumber *)increment;
@end
so the above might be
@interface NSNumber (NSNumber_Incrementing) <Incrementing>
...
@interface NSDecimableNumber (NSNumber_Incrementing) <Incrementing>
valueForKey和setValue属于NSDictionary。您正在使用提供objectForKey和setObject的NSMutableDictionary…因此,如果需要,请改为这样做
是的。并为与数字无关的键添加一些例外
据我理解,NSDictionary只能将对象作为值保存,这会不会阻止我只键入数字?@(number.intValue+1)
,你知道。据我理解,NSDictionary只能将对象作为值保存,这会不会阻止我只键入数字?@(number.intValue+1)
,你知道。我不需要知道字典中当前的条目数,我的目标是检索当前的整数,即值并将其递增1。@johnhannigan,是什么阻止了你这么做,说真的吗?@johnhannigan你是认真的吗?我已经为iOS开发了3年。我知道NSDictionary
可以容纳Objective-C只是对象,但这太微不足道了,我很难理解你的问题是什么。我不需要知道字典中当前的条目数,我的目标是检索当前的整数,即值并将其递增1。@johnhannigan,是什么阻止你这么做的,说真的?@johnhannigan你是认真的吗?我我已经为iOS开发了3年。我知道NSDictionary
只能保存Objective-C对象,但这太微不足道了,我很难理解您的问题所在。我在字典中有很多条目,可能有很多不同的数量。我在字典中有很多条目,可能有很多不同的数量es.increment
使它听起来像是NSNumber
本身正在更改,这是不可能的,因为它是不可变的。我会将方法名称更改为其他名称。嗨,我正在尝试使用dictionary上的类别,但我收到了此错误。预期行中的“:”会引发nsnumerexception。我最终只是删除了这个错误ows NSNumberException,它非常有效。这是在Objective C中创建帮助者的非常好的方法。只是好奇,但为什么要将其归入类别->(NSDictionary\U SweetIncrementing)?increment
使它听起来像是NSNumber
本身正在更改,这是不可能的,因为它是不可变的。我会将方法名称更改为其他名称。嗨,我正在尝试使用dictionary上的类别,但我收到了此错误。行中预期的“:”->throws-NSNumberException。我最终只是删除了throws NSNumberException,它非常有效。在Objective C中,这是一种非常好的帮助方式。只是好奇,为什么要将其归入类别->(NSDictionary\U SweetIncrementing)?