問題が 1 つあります。アプリケーションで使用するRestKit。ネットワーク経由でデータを受信すると、それらをオブジェクトに保持してから、クラスのさまざまなフィールドを使用します。私の場合、ソーシャル ネットワークでリンクを送信するために UIActivity で使用される URL のフィールドがある記事を取得します。UIAсtivity を押してハンドラー関数を呼び出すと、URL が NULL になります。なぜこれが起こるのか理解できません。
NewsDetailViewController.h
@property (nonatomic,strong) NSString *URL;
NewsDetailViewController.m
@interface NewsDetailViewController() {
NSString *URL;
}
@synthesize URL;
[[RKObjectManager sharedManager] getObjectsAtPath:route parameters:params
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
Article *article = [mappingResult.array firstObject];
self.URL = article.url;
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Error response': %@", error);
}];
-(void)socialSharing:sender {
dispatch_queue_t queue = dispatch_queue_create("openActivityIndicatorQueue", NULL);
dispatch_async(queue, ^{
NSArray *itemsToShare = @[self.URL];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
activityVC.excludedActivityTypes = @[UIActivityTypeAirDrop];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController:activityVC animated:YES completion:nil];
});
});
}
初期化ボタン
_items = [[self.toolBar items] mutableCopy];
UIBarButtonItem *shareBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(socialSharing:)];
[_items addObject:shareBtn];
[self.toolBar setItems:_items animated:YES];
関数 socialSharing:sender 内で、変数 self.URL が NULL です。なぜだか分からない?