私たちの開発チームでは、クライアントを認証する WEB サービスを実装しました。iPhone アプリケーションから、クライアントの情報を Web サービスに送信する必要があります。そのために、次の関数を作成しました。
-(void)authenticateClient:(NSString*)theContractNumber
ClientCode:(NSString*)theClientCode
CellPhone:(NSString*)theCellPhone
appleID:(NSString*)theAppleID
{
NSLog(@"Begin Send the information to the Web Service",nil);
NSString *uid = [UIDevice currentDevice].uniqueIdentifier;
NSDictionary *formParams = [NSDictionary dictionaryWithObjectsAndKeys:
theClientCode, @"ClientCode",
theContractNumber, @"ContractCode",
theAppleID, @"AppleID",
@" ", @"AndroidID",
@" ", @"WindowsID",
uid, @"AppleDeviceID",
@" ", @"AndroidDeviceID",
@" ", @"WindowsDeviceID",
theCellPhone, @"TelephoneNumber"
, nil];
MKNetworkOperation *operation = [self.engine operationWithPath:@"/services/Authentication.ashx"
params: formParams
httpMethod:@"POST"];
[operation addCompletionHandler:
^(MKNetworkOperation *operation) {
NSLog(@"%@", [operation responseString]);
}
errorHandler:^(MKNetworkOperation *errorOperation, NSError *error) {
NSLog(@"%@", error);
}];
[self.engine enqueueOperation:operation] ;
}
関数は機能します (またはエラーなしで機能するように見えます) が、実際には何もしません。[operation addCompletionHandler:ブロックから渡されますが、何もしません。私もそれを段階的に実行しましたが、アプリケーションがこの行に到達してから実行し、コード ブロック内に入ることなく[self.engine enqueueOperation:operation]行に直接移動することがわかりました。
誰でもこれについて助けることができますか?
ありがとうございました。