Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSMutableDictionary中的数字_Ios_Objective C - Fatal编程技术网

Ios NSMutableDictionary中的数字

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

我正在尝试设置一个字典,使其具有一个带有数字值(需要递增)的字符串键

这就是我用值1初始化的方式

[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)?