Tag: 内存pipe理

出示几个模态视图控制器后如何回到Tabbar控制器

这是我的视图层次结构 login—->仪表板(具有3个VC的Tabbar控制器)。 从一个标签栏控制器的VC提交4个VC的一个接一个的模态。 —-> VC1 —-> VC2 —-> VC3 —-> VC4。 1.如何从VC4回到tabbar控制器? 2.我的应用程序因内存崩溃了一些。 因为我没有在所有视图控制器中的任何后退button,我想从展示VC3 VC3和VC2 VC3等内存中删除VC1。什么是最好的方式来实现这一目标? 3.我有一个注销button在我的一个视图控制器在tabbar,什么是最好的方式来呈现login屏幕? (目前我被连接login,这是正确的方法吗?) 谢谢..

ARC委托内存pipe理

在苹果的文件中说 如果您需要pipe理资源,而不是释放实例variables,则可以实施dealloc方法。 您不必(实际上不能)释放实例variables,但是您可能需要在系统类和其他未使用ARC编译的代码上调用[systemClassInstance setDelegate:nil]。 这是否包括UIKit和框架委托,例如,一个UIPageViewController的父母有委托UIPageViewControllerDelegate – 这是否必须在dealloc?

iOS – ViewController在ARC下popup时不被释放

我有一个UITabBarController作为我的主要基本视图控制器。 在第一个选项卡下,我有一个UINavigationController ,当然有一个与它关联的rootViewController ,称之为vcA 。 vcA有一个button,它触发一个子视图控制器, vcB使用代码: [self performSegueWithIdentifier:@"PlacesDetailsSegue" sender:senderDictionary]; 这似乎工作,我看到在仪器中,新的vcB分配正在发生。 当我popup视图控制器回vcA ,一切看起来工作,但似乎vcB从来没有释放(即,dealloc永远不会被调用)。 所以每次从vcA->vcB->vcA->vcB ,内存使用量都会增加。 我在vcB里面有一些实例variables,我在dealloc设置了所有的variables。 但是由于dealloc没有被解雇,他们从来没有被设置nil 。 我有一个引用self.view框架属性的[UIView animationWith…]块,但我已经pipe理,使用代码: __unsafe_unretained BBCategoryViewController *weakSelf = self; [UIView animateWithDuration:duration animations:^{ [_feedTableView setFrame:CGRectMake(0, _navBar.frame.size.height, weakSelf.view.frame.size.width, weakSelf.view.frame.size.height – kMenuBarHeight) ]; } completion:nil]; 有没有人有任何想法如何我可以去找出什么对象仍然保留在一个VCBstream行? 作为参考,我的接口扩展是: @interface BBCategoryViewController () <UITableViewDataSource, UITableViewDelegate> { UITableView *_feedTableView; UIRefreshControl *_refreshControl; BBSearchBar *_searchBar; MKMapView *_mapView; BBNavigationBar […]

iOS内存警告发送到解除分配的UIViewController

我有奇怪的行为。 我的应用程序正在使用UINavigationController启动。 如果我推视图控制器ANavigationController ,回去模拟内存警告一切正常。 如果我以相同的方式推动相同的视图控制器( ANavigationController ),请返回并模拟内存警告 – 应用程序崩溃,错误: [ANavigationController retain] :发送到释放实例的消息。 在debugging时,我打印了推送控制器的地址并释放了一个地址: 在第一个推送控制器地址是0xDA724F0 。 如果我回去模拟记忆警告 – 一切都好。 调用地址为0xDA724F0第二个push- –dealloc方法。 新推控制器地址是0xFA720F0 。 回去并模拟内存警告崩溃与错误: [ANavigationController retain] :发送到解除分配的实例0xDA724F0消息。 为什么释放控制器(在步骤4)根本得到内存警告信息? 编辑 我正在使用ARC。 编辑 运行仪器来testing分配和启用NSZombie我在预期的地方崩溃,但是在UIkit库和负责调用者报告的-1引用计数是: + [UIViewController _traverseViewControllerHierarchyWithDelayedReleaseArray:block:]

复制或保留NSString参数?

我正在开发一个最新的SDK和XCode 4.2的iOs 4应用程序 我有一个关于NSString参数的问题。 这是我的class级定义: #import <Foundation/Foundation.h> @interface BlogEntry : NSObject { NSString* title; NSString* text; NSDate* date; NSString* photo; } – (id)initWithTitle:(NSString*)titulo text:(NSString*)texto date:(NSDate*)fecha photo:(NSString*)foto; @end 并执行: #import "BlogEntry.h" @implementation BlogEntry – (id)initWithTitle:(NSString*)titulo text:(NSString*)texto date:(NSDate*)fecha photo:(NSString*)foto { if (self = [super init]) { title = titulo; text = texto; date = fecha; photo = […]

我需要手动释放CFStringRef吗?

你能告诉我哪个是正确的方法,为什么在非ARC世界。 + (NSString *)getUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return [(NSString*) string autorelease]; } 要么 + (NSString *)getUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return (NSString*)string; }

内存泄漏在main.m而在仪器分析?

在我的应用程序之一,我得到UIKit,Uifoundation和QuartzCore内存泄漏。 当我去呼叫树显示在main.m泄漏。 我真的没有任何线索,为什么会发生这种情况。 你可以看到下面的内存泄漏的屏幕截图。 在调用树 如何解决这个泄漏? 内存泄漏代码 – (void) showCustomPrices { int priceValue = 0; NSArray* priceSplitValue = [btnpriceButton.titleLabel.text componentsSeparatedByString: @"."]; NSString* priceFinal = [priceSplitValue objectAtIndex:0]; for(int i=0;i<[priceArray count];i++) { if([[priceArray objectAtIndex:i] isEqualToString:priceFinal]){ priceValue = i; } } //Assign the cocktail to picker view priceActionsheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];//as we want […]

评估iPhone应用程序电池使用情况的最佳方法?

基准iPhone应用程序的电池使用情况的最佳方法是什么? 我正在使用位置服务的iPhone应用程序,并在后台运行。 看起来电池的耗尽速度明显加快,但当我尝试做一些结构化的testing时,结果是不确定的。 我正在采取的步骤是: 将电池充电至100% 删除SIM卡(我需要为我的其他手机) closures推送邮件/日历/联系人 重新安装应用程序 重新启动手机 启动应用程序 返回到SpringBoard(应用程序select屏幕) 然后等待大约15个小时,看看电池在什么位置。 迄今为止的结果是: 应用程序未运行 – 剩下69% 应用程序正在运行 – 剩下65% 应用程序正在运行 – 剩下83%

cocoapods豆荚项目build立设置

所以每次我们运行一个pod更新时,pod项目都会被重新生成。 无论在pod项目中手动设置的构build设置是否重置。 我想知道是否在pod项目由pod更新生成后,在pod项目中设置目标的一些构build设置? 任何帮助表示赞赏。

iPhone文件文件夹库/caching安全问题

我开发了一个iOS应用程序。 出于安全原因,我将所有audio/video文件下载到了Library / Caches下的Documents文件夹。 对于使用iTunes,最终用户无法使用此video备份。 但一些外部软件很容易打开库/caching,并从这个文件夹下载所有文件。 我的问题是如何保护此库/caching文件夹或如何不可见的存储文件到文档目录。