Guest User

Untitled

a guest
Jun 17th, 2012
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. long delay when calling cocoa method
  2. - (void)captureViewImage {
  3.  
  4. NSLog(@"captureViewImage called!");
  5.  
  6. // long delay happens here!
  7.  
  8. fileNamer.title = @"Preparing to save...";
  9.  
  10. // get user's file name
  11. NSString *fileName = fileNamer.fileNameField.text;
  12.  
  13. // dismiss keyboard
  14. [fileNamer.fileNameField resignFirstResponder];
  15.  
  16. // dismiss modal view
  17. [self dismissFileNamingFormSheet];
  18.  
  19. CGRect oldFrame = mainScrollView.frame;
  20.  
  21. // capture off-screen content
  22. mainScrollView.frame = CGRectMake(0, 0, 1024, 1432);
  23.  
  24. // make screenshot
  25. UIGraphicsBeginImageContext(mainScrollView.bounds.size);
  26. [mainScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
  27. UIImage *screenImg = UIGraphicsGetImageFromCurrentImageContext();
  28. UIGraphicsEndImageContext();
  29.  
  30. // save screenshot in docs dir
  31. NSData *pngData = UIImagePNGRepresentation(screenImg);
  32. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  33. NSString *documentsDir = [paths objectAtIndex:0];
  34. [pngData writeToFile:[documentsDir stringByAppendingPathComponent:fileName]
  35. options:NSDataWritingAtomic error:nil];
  36.  
  37. // revert scroll view
  38. mainScrollView.frame = oldFrame;
  39.  
  40. }
  41.  
  42. @implementation FileNamingViewController
  43.  
  44. @synthesize fileNameField, newFileName;
  45.  
  46.  
  47. - (id)initWithNibName:(NSString *)nibNameOrNil
  48. bundle:(NSBundle *)nibBundleOrNil parent:(TestDriveViewController *) myParent {
  49.  
  50. if (self == [super initWithNibName:@"FileNamingViewController" bundle:nil]) {
  51. UIBarButtonItem *rightButton = [[UIBarButtonItem alloc]
  52. initWithTitle:@"Save"
  53. style:UIBarButtonItemStyleDone
  54. target:myParent
  55. action:@selector(captureViewImage)];
  56. self.navigationItem.rightBarButtonItem = rightButton;
  57. [rightButton release];
  58.  
  59. UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]
  60. initWithTitle:@"Cancel"
  61. style:UIBarButtonItemStyleBordered
  62. target:myParent
  63. action:@selector(dismissFileNamingFormSheet)];
  64. self.navigationItem.leftBarButtonItem = leftButton;
  65. [leftButton release];
  66.  
  67. self.title = @"Save As?";
  68. }
  69. return self;
  70. }
  71.  
  72.  
  73. // UITextFieldDelegate
  74.  
  75. - (void)textFieldDidEndEditing:(UITextField *)textField {
  76. [fileNameField resignFirstResponder];
  77. }
  78.  
  79.  
  80. - (void)viewDidLoad {
  81. [fileNameField becomeFirstResponder];
  82. [super viewDidLoad];
  83. }
  84.  
  85. - (void)presentFileNamingFormSheet {
  86. fileNamer = [[FileNamingViewController alloc]
  87. initWithNibName:nil
  88. bundle:nil
  89. parent:self];
  90.  
  91. fileNamingNavCtrl = [[UINavigationController alloc]
  92. initWithRootViewController:fileNamer];
  93.  
  94. fileNamingNavCtrl.modalPresentationStyle = UIModalPresentationFormSheet;
  95.  
  96. [self presentModalViewController:fileNamingNavCtrl
  97. animated:YES];
  98.  
  99. // resize modal form sheet
  100. fileNamingNavCtrl.view.superview.frame = CGRectMake(0, 0, 540, 115);
  101.  
  102. // reposition modal form sheet
  103. CGPoint position = CGPointMake(self.view.center.x, self.view.center.y - 50);
  104. fileNamingNavCtrl.view.superview.center = position;
  105. }
  106.  
  107. - (void)dismissFileNamingFormSheet {
  108. [fileNamer release];
  109. [fileNamingNavCtrl release];
  110. [self dismissModalViewControllerAnimated:YES];
  111. }
  112.  
  113. Running (Self) Symbol Name
  114. 1109.0ms 37.0% argb32_image_mark_rgb32
  115. 328.0ms 10.9% blkclr
  116. 171.0ms 5.7% lo_alltraps
  117. 134.0ms 4.4% pmap_enter
  118. 116.0ms 3.8% png_write_find_filter
  119. 102.0ms 3.4% pmap_remove_range
  120. 55.0ms 1.8% pmap_get_mapwindow
  121. 47.0ms 1.5% vm_page_lookup
  122. 47.0ms 1.5% ml_set_interrupts_enabled
  123. 43.0ms 1.4% vm_page_grab
  124. 38.0ms 1.2% OSAddAtomic64
  125. 34.0ms 1.1% hw_lock_to
  126. 31.0ms 1.0% alphaProviderGetBytes
  127. 30.0ms 1.0% hw_lock_unlock
  128. 26.0ms 0.8% png_read_filter_row
  129. 25.0ms 0.8% deflateInit_
  130. 23.0ms 0.7% vm_map_lookup_entry
  131. 23.0ms 0.7% adler32
  132. 22.0ms 0.7% memory_object_recover_named
Advertisement
Add Comment
Please, Sign In to add comment