草庐IT

retain-cycle

全部标签

iphone - [[NSDate date] retain] 和 [[NSDate alloc] init] 的区别

由于以下两个服务于相同的目的,today=[[NSDatedate]retain];和today=[[NSDatealloc]init];那它们有什么区别呢?这里做的任何事情都与内存分配方法有关,或者其他什么是相应地使用它们的原因。 最佳答案 [NSDatedate]是一个方便的构造函数,使用它您可以摆脱将对象释放到自动释放池的麻烦。将retain消息发送到方便的构造函数,如[[NSDatedate]retain]使您成为该对象的所有者,您有责任正确释放它。[[NSDatealloc]init]是您成为对象所有者的默认初始化程序,几

objective-c - 在 block 保留周期中调用函数

如果我从block内部调用的函数引用“self”,是否会创建一个保留循环?__weakidweakSelf=self;-(void)firstFunction{idstrongSelf=weakSelf;if(!strongSelf)return;[anObjectperformBlock:^{[strongSelfsecondFunction];}];}-(void)secondFunction{[selfdoSomeCrazyStuff];self.counter++;//etc.}我在“secondFunction”中调用“self”,是否需要将我的弱指针传递给此函数并改为使用它

objective-c - 我可以在 -dealloc 中调用 [self retain] 吗?或者,如何确保 dealloc 发生在主线程上?

这是我的情况。这很复杂,所以请耐心等待。我有一个View类,我们称它为MyView。它创建一个加载指示器subview,然后启动将加载数据的后台操作。它还创建了一个block,后台队列操作完成后将在主队列中排队。该block通过添加另一个subview(UITextView)和已加载的数据来准备View。当然,要做到这一点,block必须具有对View的引用。所以后台操作保留了block,block保留了view。到目前为止和我在一起吗?有时MyView的实例会在后台队列操作完成之前从其superView中删除。有时调用block的主队列操作在后台队列操作被完全清理之前被完全清理。在这

iphone - 代码 : Storyboard and retaining data in each controller

正如您所猜到的,我是一名新程序员,但我很难获得一个简单的东西!我正在制作一个具有多个ViewController的应用程序。每个Controller都有文本字段和UIsegmentedControl项。当我从一个ViewController移动到另一个ViewController时(如果重要的话,使用模态转换),前一个ViewController的内容(文本字段条目和分段控制选项)重置为它们的原始状态。我怎样才能让他们保持以前的状态?提前致谢。 最佳答案 -(void)prepareForSegue:(UIStoryboardSeg

ios - 使用关联引用在 Objective-C 类别中伪造实例变量 - 错误 "Use of undeclared identifier ' OBJC_ASSOCIATION_RETAIN”

我正在尝试使用objc_setAssociatedObject创建类别中的“假”实例变量,如post中所述.但是,我在iOS6.1中使用ARC时遇到以下错误:Useofundeclaredidentifier'OBJC_ASSOCIATION_RETAINforthefollowingcodesnippet:-(void)setStyleName:(NSString*)styleName{objc_setAssociatedObject(self,kDHStyleKey,styleName,OBJC_ASSOCIATION_RETAIN);}iOS6.1有什么变化吗?我错过了什么?

objective-c - 执行选择器 : afterDelay: without retaining the target?

我有一个类使用NSURLConnection打开一个长时间运行的服务器连接。当连接关闭时,在connectionDidFinishLoading:或connection:didFailWithError:中,我想等待15秒,然后重试连接。目前我正在使用[selfperformSelector:@selector(restartConection)withObject:nilafterDelay:15.0];,但这会导致不希望的情况,即当对象被其释放时creator,performSelector和NSURLConnections永久保留“self”,并且它永远不会被释放。如何在不永久保

c# - Xamarin cycle 7 IOS IPA 输出现在在日期时间文件夹中

我刚刚更新到最新版本的XamarinStudio,但是当我尝试使用XBuild构建我的解决方案时,通过我们的持续集成服务器,它现在在数据时间文件夹中生成IPA文件(在通常的bin\iphone中\Ad-hoc文件夹)例如:Finisher32016-06-0911-57-45\Finisher3.ipa但是我不明白为什么它现在这样做-在以前的版本中它给了我一个文件如下:Finisher3-1.68.1.1.ipa有谁知道如何让它重新设置版本号,而不是将它放在日期时间文件夹中,这使得在我完成构建后将IPA复制到发布文件夹是相当不切实际的。 最佳答案

ios - 优化:什么是 sidetable_release() 和 sidetable_retain()?

在我的OpenGL循环中,Instruments在我的粒子处理循环中显示总共14%的处理器时间转到objc_object::sidetable_release(bool)和objc_object:sidetable_retain()。这很重要,因为循环在iPhone5上使用了100%的CPU。我想知道是否有办法减少这种情况。我不知道是什么原因造成的,而且我在很多方法中都看不到这些。我认为它们与快速枚举对象数组有关。下面是有问题的方法:-(void)updateWithTime:(ccTime)dtsceneHeightAboveHorizon:(CGFloat)yMax{_elapse

ios - 我应该在嵌套 block 中使用 weakSelf 吗?

我正试图正确地避免在ObjectiveC中使用block的保留循环,并且不确定是否具有嵌套block。如果我像这样写一个简单的block:[selfdoSomethingWithBlock:^{[selfdoSomethingElse];}];编译器捕获并警告我这可能会导致保留循环。我将其更改如下以避免循环:__weak__typeof(self)weakSelf=self;[selfdoSomethingWithBlock:^{__strong__typeof(weakSelf)strongSelf=weakSelf;[strongSelfdoSomethingElse];}];当我

iphone - strong(在 LLVM 中)和 retain(在 GCC 中)有什么区别?

strong(在LLVM编译器中)和retain(在GCC编译器中)有什么区别? 最佳答案 strong是iOS5自动引用计数(ARC)中的一项新功能,其行为与iOS4中的retain相同。ReferencedArticle.此外,请查看其他SO问题:@propertydefinitionswithARC:strongorretain? 关于iphone-strong(在LLVM中)和retain(在GCC中)有什么区别?,我们在StackOverflow上找到一个类似的问题: