가 나는 다음과 같은 필수 매개 변수HTTP POST 요청이 객체 [0]에서 객체를 삽입하지 못했습니다. 문자열, 금액 :
설명을 보낼 필요가 서버에 HTTP 요청을 보내려고 플로트, occurred_at : 문자열, 위치 : 문자열
을 양으로 I 텍스트 필드 (다른 필드는 API를 통해 전달됨)를 통과해야합니다. Segue는 PreObject 객체를 양이 필요한 뷰에 전달합니다.
마법 레코드 PreObject
개체위해 사용
((엔티티 : PreObject; ID : 0xd000000000040006 ; 데이터 { 량 = 닐; creatingOnBackend = 1; 통화 = nill; description = ""; 비용 = nil; 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;
내가있는 UIButton 애플 리케이션 사고로 누르고 디버그 영역이 오류를 표시하는 경우 :
* 종료 응용 프로그램 du 전자 캐치되지 않는 예외 'NSInvalidArgumentException', 이유에 '* - [__ NSPlaceholderDictionary initWithObjects : forKeys : 수 :] : 시도가 객체 [0]에서 전무 개체를 삽입하는'
누군가가 나를 도울 수 있습니까?