サーバー(S3)と通信する必要のあるiPhoneアプリを作成しています。ただし、このコードを実行すると、次のようになります。
- (void)submit
{
dispatch_queue_t Q = dispatch_queue_create("Formula Submit", NULL);
dispatch_async(Q, ^{
NSMutableArray *formulas = [[NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"https://urlremoved.com"]] mutableCopy];
if (!formulas)
{
formulas = [[NSMutableArray alloc] init];
}
[_data addEntriesFromDictionary:[[NSDictionary alloc] initWithObjectsAndKeys:self.explanationTextView.text, @"explanation", nil]];
[formulas addObject:_data];
AmazonS3Client *s3 = [[AmazonS3Client alloc] initWithAccessKey:@"Access Key Removed" withSecretKey:@"Secret Key Removed"];
S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:@"File Name Removed" inBucket:@"Bucket Name Removed"];
por.contentType = @"application/octet-stream";
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:formulas format:NSPropertyListBinaryFormat_v1_0 errorDescription:nil];
por.data = plistData;
[s3 putObject:por];
});
[self dismissModalViewControllerAnimated:YES];
}
コンソールに次のエラー/警告が表示されます。
void _WebThreadLockFromAnyThread(bool), 0x20150be0: Obtaining the web lock from a thread other than the main thread or the web thread. UIKit should not be called from a secondary thread.
このメッセージは、アプリのパフォーマンスにはまったく影響を与えていないようです。明らかな問題はなく、S3に正常にアップロードされます。
基本的に、このメッセージを消す方法があるかどうか疑問に思っています。