jjzjj

ios - 如何最好地为 ARC 的委托(delegate)保留 self ?

想象一下三个类(class)。A类和B类是我的。第三类是UIViewController,我无法修改其代码:在A类中:-(void)aMethod{ClassB*classBInstance=[[[ClassBalloc]init]goWithOptions:options];}ClassBInstance仅在aMethod的生命周期内保留。在B类中:-(void)goWithOptions{AUIViewController*avcInstance=[[AUIViewControlleralloc]init];avcInstance.delegate=self;[viewContro

ios - 使用 ARC,@property 是否必要

在ARC中,每个指针分配默认都会保留。鉴于此,在非原子情况下,为什么我什至需要声明属性?这两个有什么不同?//Property@interfaceI1:NSObject@property(nonatomic,strong)NSString*str;@endI1*obj1=...;obj1.str=[[NSStringalloc]init...];//Onlymembervariable@interfaceI2:NSObject{@publicNSString*str;}@endI2*obj2=...;obj2->str=[[NSStringalloc]init...];

objective-c - ARC 适用于所有对象?

在Book我找到一句话告诉我,ARCreleasesonlyObjectfromFoundation。这是真的?所以如果我有:MySimpleClass*objectFromMySimpleClass=[MySimpleClassalloc]init];我应该释放objectFromMySimpleClass吗?我怎样才能做到这一点?当我尝试[objectFromMySimpleClassrelease];我在Xcode提示中看到未激活的“发布”,然后编译器说我不能这样做,因为ARC。那么这是怎么回事?还有其他的。当我使用NSCoping协议(protocol)时,我还应该在使用cop

ios - 在导航 Controller 中转到 "back"时,ARC 未释放内存 - 它正在减慢我的 uipageviewcontroller

我正在开发的应用程序的一部分涉及UIPageViewController,其中每个页面都显示一个存储在核心数据中的“条目”。条目包括一些图像,这些图像被压缩并存储为NSData。因此,为了加载这些图像并将它们显示在页面上,我使用了imageWithData,即photo.image=[UIImageimageWithData:entry.photo];问题是imageWithData不是特别快,因此翻阅页面的响应速度不如我希望的那样。解决这种情况的最佳尝试是将一些由我的UIPageViewController显示的ViewController预加载到一个数组中。(不确定这是否是最好的做

ios - 使用ARC在iOS应用中未释放内存

我使用ARC构建了一个简单的琐事游戏。在使用Xcode中的“分配”性能分析工具对内存使用情况进行性能分析时,我看到内存并不总是被释放。对于问题的一个示例,我有一个ActivePlayer对象的类:ActivePlayer.h:@interfaceActivePlayer:NSObject@property(nonatomic,strong)NSString*name;@property(nonatomic)NSIntegeroverallScore;@property(nonatomic)NSIntegerquestionScore;-(id)initWithName:(NSStrin

ios - 在 ARC 下处理容器中 CGImageRef 的正确方法

我不熟悉在我的项目中加入arc。我试图了解__bridge和它的小friend,以便在从容器中添加和删除它们时,我可以正确地转换我的CGImageRef。我的其中一行出现“存储对象的潜在泄漏……”。这是我的代码的基本循环:CGImageRefrenderedRef=CGBitmapContextCreateImage(UIGraphicsGetCurrentContext());[_arrayaddObject:(__bridge_transferid)renderedRef];//_arrayisaniVar然后我在路上的某个地方这样做:CGImageRefiRef=(__bridg

objective-c - 什么是 ARC 限制,如何删除它们?

我刚刚下载了一个Xcode项目,我收到了所有这些关于“ARC限制”的错误。这些是什么,我该如何删除它们? 最佳答案 objective-c中基本上有两个版本的内存管理。ARC和...好吧,“不是ARC”:-)您可能下载了一个尚未使用ARC的项目。解决问题的最简单方法是指示编译器将您的源代码视为“非ARC”。Explainedhere.和here是一个很好的教程,可以帮助您开始使用ARC。 关于objective-c-什么是ARC限制,如何删除它们?,我们在StackOverflow上找到

iphone - 合并 ARC 和非 ARC 文件不起作用

一旦我将-fno-objc-arc标志添加到构建阶段中的一个或多个单独的文件,我的MyProject-Prefix.pch文件就会进入非ARC模式,导致150条警告,如“警告:没有‘分配’、'retain'或'copy'属性被指定-'assign'被假定为“被抛出。这是编译MyProject-Prefix.pch的clang日志输出。如您所见,出现了-fobjc-arc标志,但后来添加了-no-fobjc-arc,我假设它会覆盖ARC。仅当我将-fno-objc-arc添加到构建阶段中的单个.m源文件时才会发生这种情况(每个人都得到混合ARC和非ARC文件的标准建议)。有什么想法吗?/

objective-c - 如果 ARC 由编译器处理,为什么在 iOS 4 和 Mac OS X 10.6 上不支持 weak?

据说weak类似于assign或unsafe_unretained,除了weak变量在它指向的对象是dealloc的。但是ARC是由编译器处理的,那么为什么weak不支持iOS4和MacOSX10.6?(对于这个问题,请不要给出猜测作为答案,而是事实/引用/文档更支持的东西) 最佳答案 由于__weak需要在当前对象以外的地方清零一个或多个指针,因此需要额外的数据结构来跟踪弱引用。这与不需要额外跟踪的__strong、__unsafe_unretained和__autoreleasing形成对比。跟踪结构和操纵它们的程序内置于操作系

objective-c - ARC 和 viewDidUnload

如果我在我的View层次结构中有一个View的强引用,我必须在viewDidUnload中将它设置为nil还是由ARC处理? 最佳答案 前面两个答案中有太多错误信息,我将澄清到底是什么情况。注意这些是相对于DEPLOYMENT目标而言的,与是否使用iOS6SDK构建无关):您不必担心self.view-UIViewController负责管理顶级对象——即那些不包含在另一个对象中的对象——必须是强的其他对象应该使用weak(当它们被释放时系统nil是ivar以防止崩溃尝试使用已释放的对象)对于iOS6之前的设备上的部署,使用view