“BOOLtypes的集合元素”不是一个Objective-C对象
任何人都有一个线索,为什么我得到这个?
-(void)postPrimaryEMWithEM:(EM *)em exclusive:(BOOL) isExclusive success:(void (^)())onSuccess failure:(void (^)())onFailure { if(self.accessToken) { GenericObject *genObject = [[GenericObject alloc] init]; [[RKObjectManager sharedManager] postObject:genObject path:@"users/update.json" parameters:@{ ... @"em_id" : ObjectOrNull(em.emID), @"exclusive": isExclusive <-- error message
你不能把基本的数据types放在字典中。 它必须是一个对象。 但是你可以使用[NSNumber numberWithBool:isExclusive]
或者使用@(isExclusive)
语法:
[[RKObjectManager sharedManager] postObject:genObject path:@"users/update.json" parameters:@{ ... @"em_id" : ObjectOrNull(em.emID), @"exclusive": @(isExclusive), ...
我也不怀疑你打算使用BOOL *
作为你的参数。 你大概是打算:
- (void)postPrimaryEMWithEM:(EM *)em exclusive:(BOOL) isExclusive success:(void (^)())onSuccess failure:(void (^)())onFailure { ... }
同样,一个BOOL
不是一个对象,所以*
语法大概是没有意图的。
删除BOOL指针('*'):
exclusive:(BOOL*) isExclusive
并改变:
@"exclusive": isExclusive
至:
@"exclusive": [NSNumber numberWithBool:isExclusive]
要么:
// Literal version of above NSNumber @"exclusive": @(isExclusive)
注意,NSDictionary不能存储基本types,包括布尔值。 所以你必须把值封装在一个对象中,在这个例子中是NSNumber。