2014-01-08 22 views
5

これは基本的にこれを実行しようとしています。iOS JSONを使用してBOOL値をサーバーに送信

環境設定がtrueで、その場合など、真とBOOL値に変換した場合にチェックし
// 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]; 

..

それがキーにオブジェクトの数を欠けていると言ってクラッシュしていますが。

これを行うにはどんなヘルプ?

+0

それは基本的に1つ言っています配列 'objects'のオブジェクトがnilである場合、この配列をnsloggingで確認してください。 – ignotusverum

答えて

16

NSArrayにプリミティブを追加することはできません - ココアコレクションにはオブジェクトのみを含めることができます。このように、あなたのflagNSNumberでは、この要件を満たすためにラップ:

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]; 
+0

これはうまくいきました!どうもありがとうございます:-) –

+1

NSArray * objects = @ [@(フラグ)、user_token、request_token、deviceID、api_user];上記の答えの短いバージョンです。 – Konrad77

+1

@AdamRush:詳細を読む:http://rypress.com/tutorials/objective-c/data-types/nsnumber.html – staticVoidMan

関連する問題