新しいiOS6UIActivityViewControllerを使用しようとしていますが、コントローラーを表示しようとするたびにメモリリークインスツルメントがNSArray*execludedActivitiesがリークしていると表示することを除いて正常に動作します。
ExclusiveActivitiesというNSArrayを使用してから、shareShareController.excludedActivityTypesを設定して、後で配列をnilに設定できるようにしたことに注意してください(以下のコードでコメントされています)が、プロパティを直接設定していますが、まだリークがあります。
- (IBAction)share:(id)sender
{
//prepare the image
UIImage *theImage = [self screenShot];
//The array of activity Items
NSArray *activityItems = [[NSArray alloc] initWithObjects:theImage, nil];
//The acitivyViewController
UIActivityViewController *shareController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
//Excluded Actvivity Types
//NSArray *excludedAcitivities = [[NSArray alloc] initWithObjects:UIActivityTypeAssignToContact,UIActivityTypeCopyToPasteboard,UIActivityTypePostToWeibo, UIActivityTypePrint, nil];
shareController.excludedActivityTypes = [[NSArray alloc] initWithObjects:UIActivityTypeAssignToContact,UIActivityTypeCopyToPasteboard,UIActivityTypePostToWeibo, UIActivityTypePrint, nil];
//testing fixning the leak of NSArray
//excludedAcitivities = nil;
//set the completion handler
[shareController setCompletionHandler:^(NSString *activityType, BOOL completed) {
//test hiding the By MunasabaPro lable
int shareScreen = pageControl.currentPage;
MainViewController *someController = [viewControllers objectAtIndex:shareScreen];
someController.byLabel.hidden = YES;
}];
[self presentViewController:shareController animated:YES completion:nil];
}