Tag: 内存

iOS对手的内存警告

在iOS中,应用程序将通过实现名为DidReceiveMemoryWarning的函数来接收内存警告,这意味着内存不足以使用。 如果发送此警告的2级版本,应用程序可能会被强制停止。 在Android中是否有类似(像广播意图)告诉我的应用程序,我们没有内存,我可以通过编程删除一些对象? 谢谢。

内存警告使用UIImagePickerController时

当我在iPhone上使用相机时,我得到一个内存警告。 我也使用ARC。 当您拍摄照片并按下相机视图控制器上的“使用照片”button时,我会收到内存警告。 意图是一旦“使用照片”button被按下,它改变了一个ImageView的内容。 我认为内存问题可能是由于捕获的图像是全屏的,而ImageView是250h 250w。 但我试图缩小相机拍摄的图像的大小,然后将其分配给ImageView。 但是,这仍然不起作用,即使我把它调整到100 x 100。 其次,我没有把相机拍摄的照片分配给ImageView,但仍然有内存警告。 我看了这里的其他答案,并试图上述两个,但它仍然在那里。 我将在下面显示我的代码。 这会影响我提交给应用程序商店吗? 当然,如果这是一个常见的问题,这是一个错误或有工作? 如果能够查看提供的代码并发现错误或者build议如何处理这种内存警告,那将会很棒。 我的应用程序是95 +%完成除了这个记忆警告,所以它接近提交时间。 我的代码: – (IBAction)takePhoto:(id)sender { self.imagePicker = [[UIImagePickerController alloc] init]; self.imagePicker.delegate = self; self.imagePicker.allowsEditing=NO; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; [self presentViewController:self.imagePicker animated:YES completion:NULL]; } else{ [self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; [self presentViewController:self.imagePicker animated:YES completion:NULL]; } } – (IBAction)choosePhoto:(id)sender { self.imagePicker2 […]

我怎样才能pipe理视图控制器无限推动到导航控制器堆栈? iOS版

我有一个由UINavigationController组成的应用程序,它从3个不同的选项卡中推送ViewControllers。 我预见到的麻烦是,目前的结构允许用户无休止地将VC添加到堆栈。 我有一个叫药品的标签,另一个叫病原体。 如果您深入了解药物,您可以查看其有效防治的病原体列表,并且用户可以select一种病原体以查看有关该病原体的更多信息。 这导致应用程序推动一个新的病原体VC。 现在,用户可以深入到病原体易感染的药物列表中,并select它,这在药物标签中导致新的VC。 等等等等… 每次有额外的1.5Mb添加到内存占用。 我怎样才能最好地pipe理这个?

iOS 8的UIWebView内存pipe理

我有一个层次结构的应用程序(NavigationController),在根控制器的angular色中有一个简单的表视图。 每次select任何单元格时,都会得到一个新的视图,其中包含有关细节的一些信息(由DetailViewControllerpipe理)。 在DetailViewController的视图方面,我有一个UIWebView来显示来自Internet的数据。 但是,当我查看内存使用情况时会发生问题。 DetailViewController的每个新打开的视图,通过UiWebView从Web上加载的内容带来更多的内存使用系数。 我想卸载一切,并释放为该数据分配的内存,当我回到我的根控制器的视图。 我如何处理这个问题? 我试图stopLoading: UIWebView的实例方法来保存一些内存,但它也不能解决问题。 以及我不完全了解ARC的工作过程,我不能保证自己,如果通常每增加一个新的详细视图,增加内存使用系数。 先谢谢你!

IBOutlets,实例variables和属性:最佳实践

今天我已经做了各种关于宣布IBOutlet和实例variables,pipe理它们,使用正确的访问器并正确释放它们的最佳实践的研究。 我在那里,但我有一些利基问题,我希望有人能够build议最佳实践。 我会将它们格式化为代码并对问题进行评论以便于理解。 我已经排除了一些我认为不相关的明显的部分,可以安全地假设工作(像预处理器的东西,@end,所需的实现方法等)。 MyViewController.h @class OtherViewController; @interface MyViewController : UIViewController { NSString *_myString; BOOL _myBOOL; } // The first two properties aren't declared in the interface // above as per best practices when compiling with LLVM 2.0 @property (nonatomic, retain) OtherViewController *otherViewController; @property (nonatomic, retain) UIButton *myButton; @property (nonatomic, copy) NSString *myString; @property (readwrite) […]

UIWebView不使用ARC释放所有活动字节

我目前在使用ARC的iOS 5.1中构build一个导航控制器应用程序。 我经常需要显示网页,我已经做了一个Web浏览器,这只是一个UIWebView与周围的一些自定义内容。 当用户完成查看页面时,他们点击后退button,应释放与自定义Web查看器关联的所有内存。 我的问题是,当后退button被击中时,所有内存都不会被释放。 我已经构build了一个玩具应用程序( 在github上 ),它只是一些button,每个button都有一个第一响应者调用不同的页面。 @implementation ViewController -(IBAction)googlePressed:(id)sender { CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.google.com"]; [self.navigationController pushViewController:customWebView animated:NO]; } -(IBAction)ksbwPressed:(id)sender { CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.ksbw.com/news/money/Yahoo-laying-off-2-000-workers-in-latest-purge/-/1850/10207484/-/oeyufvz/-/index.html"]; [self.navigationController pushViewController:customWebView animated:NO]; } -(IBAction)feedProxyPressed:(id)sender { CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://feedproxy.google.com/~r/spaceheadlines/~3/kbL0jv9rbsg/15159-dallas-tornadoes-satellite-image.html"]; [self.navigationController pushViewController:customWebView animated:NO]; } -(IBAction)cnnPressed:(id)sender { CustomWebView *customWebView = [[CustomWebView alloc] initWithStringURL:@"http://www.cnn.com/2012/04/04/us/california-shooting/index.html?eref=rss_mostpopular"]; [self.navigationController […]

Swift堆栈/堆理解

我想不想要什么存储在堆栈/堆快速。 我有一个估计:你打印的所有内容和内存地址都不是这些值,它们存储在堆栈中,打印出来的值是堆中的值,基本上根据值和引用types。 我完全错了吗? 另外,你可以提供堆栈/堆的可视化表示吗?

检查应用程序运行时的内存使用情况

运行我的应用程序时,我有时会得到内存警告。 它并不总是发生在代码中的相同位置,但我怀疑它与我的应用程序外部分配的内存有关; 也就是说,如果在后台iPhone上运行的应用程序很多,我会提前得到内存警告,如果没有应用程序在后台运行,我将不会收到警告。 有没有一种方法可以用来检查我的应用程序在某个点上使用了多less内存? 有没有一种方法可以用来检查机器(iPhone / iPad)在某个时候使用多less内存? 甚至可能检查有多less内存仍然可用? 一般来说,也许有人知道在哪里可以find有关不同的基于iOS的机器的内存限制的数据? 谢谢,奥哈德

ARC,值得吗?

当我从C ++(和小Java)移到Objective C(iOS)时,我很难理解iOS中的内存pipe理。 但现在所有这一切似乎很自然,我知道保留,autorelease,复制和发布的东西。 在阅读了ARC之后,我想知道使用ARC还有更多好处,或者您不必担心内存pipe理。 在转向ARC之前,我想知道如何转向ARC。 XCode具有“转换为Objective C ARC”菜单。 转换是如此简单(没有什么可担心的)? 它有助于我减less我的应用程序内存足迹,内存泄漏等(不知何故?) 它是否对我的应用程序有很多testing影响? 什么是非明显的优势? 任何移动到它的缺点?

从内存中下载并保存大量图像时的iOS内存问题(ARC)

下面的代码从一个服务器下载700多个不同大小的图像,这里的问题是内存(甚至是ARC)从不被释放,最终出现内存警告,然后应用程序退出。 我试过@autoreleasepool在这个方法,似乎没有工作。 另外我试过在不同的地方停止for循环来查看内存是否在完成后被释放,但事实并非如此。 这个方法在for循环中被调用,并接收图像url和短名称。 已经在后台线程和主线程中尝试了相同的结果(内存明智)。 -(void)saveImage:(NSString*)image name:(NSString*)imageName{ int k = 0; for (int j = 0; j < [imageName length]; j++) { if ([imageName characterAtIndex:j] == '/') { k = j; } }if (k != 0) { imageName = [imageName substringFromIndex:k+1]; } NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imageName]]; if ([fileManager fileExistsAtPath:fullPath]) { [fileManager removeItemAtPath:fullPath […]