我在将值分配给 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;
可以返回可为 null 的对象,这就是问题所在。
我对如何解决这个问题很感兴趣。
最佳答案
您必须获取对象的 integerValue
才能分配给您的 itemToSelect
,即 NSUInteger
。
NSUInteger itemToSelect = [self isCapturedEntriesContainClienst] ? 1 : [self.menuItemsPostion[[NSNumber numberWithInteger:self.selectedGroup]] integerValue];
关于ios - 不兼容的操作数类型 ('NSUInteger'(又名 'unsigned long')和 'id _Nullable'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40242144/