私は次の必須パラメータにHTTP POST要求がオブジェクト[0]からnilオブジェクトを挿入しようとしましたか?
説明送信する必要があるサーバーにHTTPリクエストを送信しようとしている:私は量として文字列
:文字列、金額:フロート、occurred_at:文字列、場所をそれをテキストフィールドに渡す必要があります(他のフィールドはAPIを経由しています)。SegueはPreObjectオブジェクトを量が必要なビューに渡しました。
魔法録音PreObject
オブジェクトために使用される
((エンティティ:PreObject; ID: 0xd000000000040006 ; データ:{ 量=ゼロ、 creatingOnBackend = 1; 通貨= nil; description = ""; 費用=なし; extraInformation = "0xd000000001400010"; 識別子= 47; ignoredAt = nil; 場所= nil; occuredAt = "2017-03-12 00:00:00 +0000"; 参加者= ""; payer = nil; receiver = nil; status = nil; tags = ""; }))
HTTP要求依頼:依頼のパラメータを渡す
class func sendToBackend(object: PreObject,preObjectID: NSNumber, withCompletion completion: (error: NSError?) ->()) {
let url = "\(ServicesUtils.baseUrl())/objects/\(preObjectID)/send"
let params = [object.dictionaryBackend()]
let sessionManager = ServicesUtils.rexpenseBaseSessionManager()
let request = sessionManager.requestSerializer.requestWithMethod("POST", URLString: url, parameters: params, error: nil)
let task = sessionManager.dataTaskWithRequest(request) { urlResponse, responseObject, error in
if let _ = error {
let returnError = ServicesUtils.rexpenseHandleErrorWithResponse(urlResponse, andRequest: request, andResult: responseObject)
completion(error: returnError)
return
}
guard let dict = responseObject as? [String: AnyObject] else {
let errorMessage = "Error"
let error = NSError(domain: "xxxxxxxxx", code: -1, userInfo: [NSLocalizedDescriptionKey : errorMessage])
completion(error: error)
return
}
let moc = NSManagedObjectContext.MR_defaultContext()
PreObject.createPreObjectwithDictionary(dict, inContext: moc)
moc.MR_saveToPersistentStoreAndWait()
completion(error: nil)
}
task.resume()
}
辞書:
- (NSMutableDictionary *)dictionaryBackend {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"description"] = description == nil ? [NSNull null] : description;
dict[@"payer"] = @{@"id": self.payer.identifier,
@"type": @"xxxxx"};
if ([self.amount doubleValue] == [self.amount intValue]) {
NSNumber *number = [NSNumber numberWithDouble:[self.amount doubleValue] + 0.001];
dict[@"amount"] = number;
} else {
dict[@"amount"] = self.amount;
}
NSDateFormatter *dateFormatter = [ServicesUtils defaultDateFormatter];
dict[@"occurred_at"] = [dateFormatter stringFromDate:self.occuredAt];
dict[@"tags"] = [self tagsSeparatedByComma];
dict[@"location"] = self.address == nil ? [NSNull null] : self.address;
dict[@"currency"] = self.currency;
return dict;
iはUIButtonアプリケーションのクラッシュにタップしてデバッグ領域にこのエラーを示します。
*終了アプリケーションduキャッチされない例外へのE 'NSInvalidArgumentExceptionは'、理由: '* - [__ NSPlaceholderDictionary initWithObjects:forKeys:カウント:]: オブジェクトからはnilオブジェクトを挿入しようとする試み[0]'
誰かが私を助けることができますか?