草庐IT

automatic-ref-counting

全部标签

ios - 使用自定义 getter 和 setter 将消息发送到带有 ARC 的已释放实例

我正在尝试为我的自定义对象HFObject实现自定义getter和setter,尽管使用了ARC,但我的应用程序因Messagesenttodeallocatedinstance错误而崩溃。我已经阅读了每一篇相关的文章,那些在ARC之前写的不适用,其他的都没有帮助。我打开了僵尸对象调试器选项。设置自定义HObject在HObject.h中我声明了这四个属性:@property(retain)NSString*email;//Willusecustomgetter/setter@property(retain)NSString*firstName;//Willusecustomgette

iphone - 内存问题还是其他?

我在我的iPad上运行一个应用程序,将图像加载到轮播中。总共有138张图像。如果我将该数字减少到100,则应用程序加载正常。然而,在138,应用程序暂停,而不是崩溃。如断点所示,正在到达viewDidLoad和第一个for语句。问题在于第二个for语句。//loadingimagesintothequeueloadImagesOperationQueue=[[NSOperationQueuealloc]init];NSMutableArray*tmpArray=[[NSMutableArrayalloc]initWithCapacity:14];for(inti=0;i我猜测存在内存问

objective-c - 将 WEAK 设置为非@property 变量

需要了解ARC的人来帮助我。基本上,我已经在我的类中声明了一些变量@interfaceClass{NSString*one;NSString*two;}@property(nonatomic,weak)NSString*one;如您所见,我可以将弱标识符设置为NSString*one。但是,我不需要NSString*two的getter/setter/synthesizer,因为它只是一个公共(public)变量。如何为其设置weak标签以便释放内存?还是自动设置? 最佳答案 你可以这样做:__weakNSString*two;但在

ios - ARC 转换失败 : -ccc-arcmt-check argument "unused"

我正在尝试将我的iOS项目升级为使用ARC。当通过Edit->Refactor->ConverttoObjective-CARC开始转换时,我选择我的目标,取消选择链接库并按下检查。接下来我收到以下错误:clang:error:argumentunusedduringcompilation:'-ccc-arcmt-check'Command/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clangfailedwithexitcode1一些想法如何解决这个问题?X

ios - iPhone 可达类

我添加了Reachability.h/m这两个文件。我遇到的问题是ReachabilityCallback方法NSCAssert([(NSObject*)infoisKindOfClass:[Reachabilityclass]],@"infowaswrongclassinReachabilityCallback");错误信息是:C指针类型'void*'到Objective-C指针类型'NSObject*的转换需要桥接转换NSAutoreleasePool*myPool=[[NSAutoreleasePoolalloc]init];错误:'NSAutoreleasePool'不可用:在

ios - 如何保存组装好的 NSArray?

有时我必须在某些条件下“加载”一个数组。所以我有一个for循环并将对象添加到临时NSMutableArray。但是当我的组装过程完成并且我只需要一个属性中的静态数组时,最好的办法是什么?我应该只为NSArray属性设置我的临时值吗?我应该使用NSMutableArray的复制方法并将其复制到属性吗?我应该使用[[NSArrayalloc]initWithArray:tempArray]吗?我应该使用[NSArrayarrayWithArray:tempArray]并且与init有区别吗?(为了性能和内存)继续的最佳方式是什么? 最佳答案

ios - 使用 ARC 和 block 时保留循环

根据我的理解,当一个对象方法接收到一个block作为完成参数时,我可以在block中发送“self”:[objectdoMethodWithCompletion:^{[selfdoSomethingWhenThisMethodCompletes]}];但是如果这个对象“保留”了block(保存它以备将来使用)我应该发送一个我自己的“弱”副本:__weak__typeof__(self)weakSelf=self;object.savedBlock=^{[weakSelfdoSomethingWhenThisBlockIsCalledFromWithinObject];};但我也看到了变

ios - 如果我以编程方式创建 View 并将它们添加到 View 层次结构中,为什么它们需要是强引用?

我有一个简单的ViewController,里面有几个我以编程方式创建的View对象。这是ViewController.h的一部分:@property(nonatomic,strong)UIScrollView*scrollView;@property(nonatomic,strong)UILabel*listingTitle;@property(nonatomic,strong)MKMapView*listingMap;@property(nonatomic,strong)UILabel*listingPrice;如您所见,它们都是强引用。如果我对它们中的任何一个进行弱引用,ARC就

ios - 在 ARC 中释放强引用

我的项目启用了ARC。我有一个类是NSObject的直接子类,我的类有一个NSArray(强引用)。我怎样才能释放我的阵列?我的理解InARCnoneedofreleasingobjectssetniltomyNSArray(Strongreference)indeallocmethodsetniltomyNSArray(Strongreference)inviewDidUnloadincaseofviewcontroller这是释放我的NSArray的正确方式吗?如果不是,那么正确的方法是什么? 最佳答案 所以首先,viewDid

ios - 是否可以在保留计数不为零的对象上调用 dealloc?

我会尽量简短明了:我有一个对象,它的dealloc方法正在被调用。我还有一个NSTimer每3秒被调用一次以记录以控制所述对象的当前保留计数。需要说明的是:我知道NSTimer会保留该对象。即使考虑到这一点,情况仍然不成立。无论如何-在这个计时器触发时,对象的保留计数被记录为3。这让我感到困惑有两个原因:如果对象的保留计数从未达到0,为什么要调用dealloc?既然dealloc被调用,至少,保留计数不应该是1,因为NSTimer实例正在保留它?非常感谢任何帮助。谢谢。编辑:代码:[NSTimerscheduledTimerWithTimeInterval:3.0target:self