gpt4 book ai didi

ios - 该应用程序正在从后台线程修改自动布局引擎。

转载 作者:行者123 更新时间:2023-12-01 18:45:55 24 4
gpt4 key购买 nike

我试图在Twitter中分享文本。将文本发布到Twitter后,我得到错误消息:该应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃。这将在将来的版本中引起异常。 这有什么解决方案?

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];
}
}];

最佳答案

Apple已开始(使用iOS 9)检测您何时进行此操作并警告您。在后台执行其他操作时更新UI之前,请将UI更新调用包装为

在主线程中调用所有UIAlertview并检查

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

关于ios - 该应用程序正在从后台线程修改自动布局引擎。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35842290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com