Я пытаюсь получить доступ к контактам пользовательской формы телефона. Так или с этой целью я использую обработчик завершения. Поэтому, когда приложение пытается получить доступ к контактам пользователя, оно показывает предупреждение. & просит разрешения разрешить контакт. Когда пользователь нажимает кнопку «ОК».Не удается выполнить сетевой вызов из обработчика завершения?
то блок выполняется & это время я сделать сеть call.Although функции называется, но делегат никогда не называется & ответа никогда не получал.
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
{
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
// First time access has been granted, add the contact
NSLog(@"access contact");
[self sample];
});
NSLog(@"after sccess contact");
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized)
{
// The user has previously given access, add the contact
NSLog(@"previous access");
}
else
{
// The user has previously denied access
// Send an alert telling user to change privacy setting in settings app
NSLog(@"send alert");
}
CFErrorRef error = NULL;
вызовов сети
-(void)sample
{
NSLog(@"sample func called");
// Create the request.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];
// Specify that it will be a POST request
request.HTTPMethod = @"POST";
// This is how we set header fields
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
// Convert your data and set your request's HTTPBody property
NSString *stringData = @"some data";
NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = requestBodyData;
// Create url connection and fire request
sampleConn= [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
Вы проверили способ отказа делегата? –
Да, я проверил его. Если я сделаю сеть cal из метода [viewdidLoad], тогда ответ будет получен. Но в другом случае я не получаю никакого ответа. @ AshishP. – Techiee