不兼容的操作数类型('NSUInteger'(又名'unsigned long')和'id _Nullable')

时间:2016-10-25 14:03:34

标签: ios objective-c nsdictionary

我有一个问题与NSUInteger的值分配有关:

self.selectedGroup = GroupType //It is 3 from enum

self.menuItemsPostion = @{[NSNumber numberWithInteger:GroupType]: @0, [NSNumber numberWithInteger:GroupTime]: @1};

NSUInteger itemToSelect = [self isCapturedEntriesContainClienst] ? 1 : self.menuItemsPostion[[NSNumber numberWithInteger:self.selectedGroup]]; // Incompatible operand types ('NSUInteger' (aka 'unsigned long') and 'id _Nullable')

我从NSDictionary了解该方法。

- (nullable id)objectForKey:(id)key;可以返回可空对象,这就是问题所在。

我感兴趣的是如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

您必须获取integerValue您的对象才能分配到itemToSelect NSUInteger

NSUInteger itemToSelect = [self isCapturedEntriesContainClienst] ? 1 : [self.menuItemsPostion[[NSNumber numberWithInteger:self.selectedGroup]] integerValue];