Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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使用JSON向服务器发送BOOL值_Ios_Objective C_Json_Boolean - Fatal编程技术网

iOS使用JSON向服务器发送BOOL值

iOS使用JSON向服务器发送BOOL值,ios,objective-c,json,boolean,Ios,Objective C,Json,Boolean,我基本上是在尝试这样做 // Catch the true/false flag and convert to BOOL value for server NSString *on = [prefs objectForKey:@"published"]; BOOL flag = TRUE; if ([on isEqualToString:@"true"]) { flag = TRUE; } else { flag = FALSE; } NSArray *objects =

我基本上是在尝试这样做

// Catch the true/false flag and convert to BOOL value for server
NSString *on = [prefs objectForKey:@"published"];
BOOL flag = TRUE;
if ([on isEqualToString:@"true"]) 
{
    flag = TRUE;
} 
else 
{
    flag = FALSE;
}

NSArray *objects = [NSArray arrayWithObjects:body, flag, user_token, request_token, deviceID, api_user, nil];
NSArray *keys = [NSArray arrayWithObjects:@"selections", @"published", @"user_token", @"request_token", @"device_id", @"api_user", nil];
NSDictionary *questionDict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
它检查prefs是否为真,如果为真,则转换为带真等的BOOL值

然而,它崩溃了,说它缺少关键点的对象数


有什么帮助吗?

您不能将原语添加到
NSArray
-Cocoa集合只能包含对象。将您的
标志
包装在
NSNumber
中以符合此要求,如下所示:

NSArray *objects = [NSArray arrayWithObjects:body, [NSNumber numberWithBool:flag], user_token, request_token, deviceID, api_user, nil];
您还可以使用数组和值的新语法来缩短代码:

NSArray *objects = @[body, @(flag), user_token, request_token, deviceID, api_user];

它基本上是说数组“objects”中的一个对象为nil,请确保通过nslogging检查此数组,这是有效的!非常感谢,非常适合将来参考:-)NSArray*objects=@[@(标志),user_token,request_token,deviceID,api_user];是上述答案的一个简短版本。@AdamRush:更多阅读:dasblinkenlight不需要“nil”-哨兵。(数组中的最后一个为零)。(使用新语法时)