2016-03-07 2 views
1

Я пытаюсь разделить текст в Twitter. после размещения текста в твиттере я получаю ошибку: Это приложение модифицирует механизм автозапуска из фонового потока, что может привести к повреждению двигателя и странным сбоям. Это приведет к исключению в будущей версии. Какое решение для этого?Это приложение изменяет механизм автозапуска из фоновой нити. Twitter Background Share

ACAccountStore *account = [[ACAccountStore alloc] init]; 
    ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter]; 

    NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"text with link http://www.pothi.com/"],@"status",@"true",@"wrap_links", nil]; 
    //hear before posting u can allow user to select the account 

    NSArray *arrayOfAccons = [account accountsWithAccountType:accountType]; 
    for(ACAccount *acc in arrayOfAccons) 
    { 
     NSLog(@"%@",acc.username); //in this u can get all accounts user names provide some UI for user to select,such as UITableview 
    } 

    [account requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) 
    { 
     if (granted == YES) 
     { 
      // Populate array with all available Twitter accounts 
      NSArray *arrayOfAccounts = [account accountsWithAccountType:accountType]; 
      if ([arrayOfAccounts count] > 0) 
      { 
       //use the first account available 
       ACAccount *acct = [arrayOfAccounts objectAtIndex:0]; //hear this line replace with selected account. than post it :) 
       //Build a twitter request 
       SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter 
                  requestMethod:SLRequestMethodPOST 
                     URL:[NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"] 
                   parameters:dict]; 
       //for iOS 6 use "https://api.twitter.com/1/statuses/update.json" 
       //u should get the response code 200 for successful post 
       [postRequest setAccount:acct]; 
       //manage the response 
       [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
       { 
        if(error) 
        { 
         //if there is an error while posting the tweet 
         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Twitter" message:@"Error in posting" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
         [alert show]; 
        } 
        else 
        { 
         // on successful posting the tweet 
         NSLog(@"Twitter response, HTTP response: %li", (long)[urlResponse statusCode]); 
         UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Twitter" message:@"Successfully posted" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
         [alert show]; 
        } 
       }]; 
      } 
      else 
      { 
       UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Twitter" message:@"You have no twitter account" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
       [alert show]; 
      } 
     } 
     else 
     { 
      //suppose user not set any of the accounts 
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Twitter" message:@"Permission not granted" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
     } 
    }]; 
+0

в какой строке вы получите эту ошибку –

+0

после сообщение успешно, Все UIAlertView - Anbu.Karthik –

ответ

3

Apple, начали (с прошивкой 9) обнаружения, когда вы делаете это, и предупреждает вас. Перед обновлением пользовательского интерфейса, делая другие вещи в фоновом режиме, завернуть вызовы обновления UI в чем-то вроде

называют все ваши UIAlertview в главном потоке и проверить

dispatch_async(dispatch_get_main_queue(), ^{ 
// add your UIAlertview code here 
}); 
+0

Да Вы правы, Спасибо за повтор –

+0

Конечно. дал отметку –

+0

welcome bro .... –

Смежные вопросы

 Смежные вопросы