草庐IT

automatic-ref-counting

全部标签

ios - Xcode 静态分析报告 ARC 下的一处泄漏 - CGImageRef - 如何解决

在大约2k行代码中,静态分析器只有一个问题,因此:spellDetailModalViewController*detailVC=[[spellDetailModalViewControlleralloc]init];UIImage*tempImage=self.spellImageView.image;CGRectnewSize=CGRectMake(0.0,0.0,320.0,305.0);CGImageReftemp=CGImageCreateWithImageInRect([tempImageCGImage],newSize);UIImage*passingImage=[UII

ios - 带有 __unsafe_unretained 类型转换的 malloc 对象生命周期

我是Objective-C和ARC的新手,并且已经搜索和阅读了几个小时但没有找到答案。该代码执行我希望它执行的操作,但我想知道它不依赖于有利条件。这是我的代码的简化版本:+(void)foo{Class*classes=(__unsafe_unretainedClass*)malloc(sizeof(Class)*someValue);//Performworkwithoutcomplicatedmemorymanagementfree(classes);}我不能对正在分配的结构做太多事情。它由objc_getClassList填充.不幸的是,Apple似乎没有更新他们的文档来解释如何

objective-c - iOS - ModalViewControllers 的 ARC/内存管理问题

我正在编写一个应用程序(在iOS5中使用ARC!),它在自定义UIViewController中显示数百个对象我写过用户可以滚动并选择,每个对象都是显示为用户可以触摸的缩略图。这些对象中的每一个都与一个特殊的UIViewController子类相关联,该子类处理与该对象相关联的信息的自定义表示。例如,它可能是可以缩放和平移的图像,或者只是一些需要格式化的文本。现在,我的每个图像对象都有一个与之关联的大图像。使用Instruments应用程序分析我的代码并运行ActivityMonitor,我发现当加载自定义UIViewController子类并显示图像时,它们每个大约占用5-10MB。

ios - 有没有办法仅在每个文件的基础上使用 ARC 迁移工具?

在整个项目中多次使用ARC迁移工具时,我发现了一些不一致的地方。例如:-(void)dealloc{[ivarrelease],ivar=nil;}第一次迭代将此转换为:-(void)dealloc{ivar=nil;}第二次迭代完全摆脱了-dealloc。假设在-dealloc中将ivars设置为nil是没有意义的,因为ARC无论如何都会自动执行此操作,ARC将ivar=nil放在首位是很奇怪的。为了防止可能出现的奇怪bug,有没有办法只对一个特殊文件而不是整个项目使用ARC迁移工具? 最佳答案 当您选择“编辑”>“重构”>“转换

objective-c - ARC 所有权限定词的位置重要吗?

Apple倾向于给出这样的例子:NSError__strong*error=nil;或-(BOOL)performOperationWithError:(NSError*__autoreleasing*)error;如果我可以这样做,我会发现它更具可读性和逻辑性:__strongNSError*error=nil;-(BOOL)performOperationWithError:(__autoreleasingNSError**)error;快速测试显示编译器没有提示我的编写方式。无论如何我做错了,还是这样写就可以了? 最佳答案 不

objective-c - 使用 ARC 时在 View 之间正确传递 NSManagedObjects?内存警告和崩溃

您好,我在ARC下遇到了一个严重的内存管理问题,不知道如何解决。问题是这样的,我有这些对象:ObjectManager-一个对核心数据执行fetchRequests并获取一个或多个NSManagedObjects的单例UIViewControllerA-一个ViewController,其中我有一个按钮“PassManagedObject”和一个声明如下的属性:@property(strong,nonatomic)ManagedObject*objectForToday;在UIViewControllerA上的viewDidLoad中,我调用方法refreshDailyObject执行

objective-c - 为什么我不需要 CFRetain() 这段代码中 ABAddressBookGetPersonWithRecordID() 的结果

我正在尝试使用地址簿,但我对内存管理的理解充其量只是马马虎虎。我的项目正在使用自动引用计数(ARC),但据我了解,ARC仅管理Objective-C领域的保留/释放。我知道我的第一个函数调用:ABAddressBookCreate()返回一个我“拥有”的ABAddressBookRef,因为我是从一个带有Create的方法中获取它的姓名。当我完成它时,我CFRelease它。我不明白的是ABRecordRef如何在此方法的过程中保持事件状态。我不应该CFRetain和CFRelease吗?如果我不保留/释放ABAddressBookRef,我在同一个类中有另一个几乎相同的方法会崩溃。A

ios - 内存泄漏 iOS(UIImageView、UIImage、CGImage)未在 ARC 上释放

我正在尝试实现一个简单的视频流,但由于某种原因我的内存不会被释放:(void)updateImage:(UIImage*)image{self.indicator.hidden=TRUE;//CGImageRelease([self.imageView.imageCGImage]);self.imageView.image=nil;self.imageView.image=image;[self.imageViewsetNeedsDisplay];}如果我用CGImageRelease([self.imageView.imageCGImage]);内存将被释放。但是当我返回到之前的Vi

ios - Cocos2d 2.0:什么时候“清除”缓存的好习惯?

在每个场景的开头调用以下“清除”方法是一种好习惯吗?如果不是,我什么时候应该给他们打电话,是否有任何教程可以解释何时使用每个电话?我想念什么吗?[CCTextureCachepurgeSharedTextureCache];[CCSpriteFrameCachepurgeSharedSpriteFrameCache];[CCAnimationCachepurgeSharedAnimationCache];[CCShaderCachepurgeSharedShaderCache];[[CCFileUtilssharedFileUtils]purgeCachedEntries];(我正在使

iphone - 为什么我们在 iOS 中需要 property outlet 和 variable?

通常我只在其他类访问时才使用“属性”导出和变量。否则它在接口(interface)block中声明。但我看到有些是创建“属性”导出和变量,但它们不能在另一个类中访问这些。所以任何人都可以解释,如果我们不从另一个类访问某些导出或变量,为什么我们需要“属性”导出和变量? 最佳答案 如果您不需要从另一个类访问socket,则无需将其设为属性。您可以在@implementation中将其设为实例变量:@implementationViewController{IBOutletUIView*someView;}...有些人不喜欢使用普通实例变