Tag: 自动ref counting

我需要用ARC使用dealloc方法吗?

所以,我有课: @interface Controller : NSObject { UILabel* fileDescription; } @property(strong, nonatomic) UILabel* fileDescription; 我需要使用方法dealloc属性fileDescription将等于零? 例如: -(void)dealloc { fileDescription = nil; } 如果不是的话,谁将解雇f​​ileDescription使用的内存?

ARC的@属性定义:现在是强大的默认值?

只需在新的xcode 4.3.1上运行ARC重构工具,并注意到我的(nonatomic,retain)属性正在被replace为(非primefaces的),而不是(非primefaces的,强大的),就像以前的xcode一样。 我的代码似乎运行良好后,这个变化,所以我认为这是默认强大无论如何,任何人都知道为什么事情已经改变与ARC转换器?

深入了解保留周期

假设我们有三个对象:祖父母,父母和孩子。 祖父母保留父母,父母保留孩子,孩子保留父母。 祖父母释放父母。 在这种情况下会发生什么?

使用ARC的优点和缺点是什么?

在iOS项目中使用新的自动引用计数(ARC)内存pipe理风格有哪些优缺点? 你可以select在使用iOS 5.0 SDK进行开发时不使用ARC吗? 您是否推荐ARC或手动引用计数(MRC)用于新项目? 使用ARC的应用程序是否能够在比iOS 5.0更早的操作系统版本上运行?

正确桥接ARC?

我有一个NSString的类别类。 @implementation NSString (URLEncode) – (NSString *)URLEncodedString { __autoreleasing NSString *encodedString; NSString *originalString = (NSString *)self; encodedString = (__bridge_transfer NSString * ) CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef)originalString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8); return encodedString; } 我是否使用ARC和新LLVM的正确桥接传输? 原代码: – (NSString *)URLEncodedString NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8); return [encodedString autorelease]; }

归零ARC中的弱引用

如果我读到Mike Ash的“Zeroing Weak References”写法是正确的,那么弱引用就像是在没有ARC的情况下assign引用。 但是,如果被引用的对象被释放,而不是获得一个“悬挂指针”(意味着指向一个释放对象的指针),指针将被设置nil 。 这是正确的, 这是否发生在任何标记为weak或assign属性(当ARC处于活动状态时)? 如果这是正确的,这将消除许多SIGABRT。

如何使用自动引用计数的代表

我已经跳上了ARC的潮stream。 在过去,我将我的委托属性声明如下: @property(assign) id<MyProtocol> delegate; 所以我想我会在ARC下做这个: @property(weak) id<MyProtocol> delegate; 不是这样。 在.m中的@synthesize语句中,我有一个编译错误 : *语义问题:__weak property'delegate'的现有ivar'委托'必须是__weak * 我已经宣布它虽然弱! 另外我如何将实现协议的类传递给弱引用的属性。 我必须把它包装在那些奇怪的obj_unretained调用之一吗? 任何帮助,将非常感激。

在ObjC实现文件中声明的实例variables

我正在观看WWDC ARC介绍video,在苹果的一位工程师谈到Stack示例时,我看到了在ObjC中从未见过的东西。 以下代码用于ARC的堆栈示例: @implementation Stack { // instance variable declared in implementation context NSMutableArray *_array; } – (id)init { if (self = [super init]) _array = [NSMutableArray array]; return self; } – (void)push:(id)x { [_array addObject:x]; } – (id)pop { id x = [_array lastObject]; [_array removeLastObject]; return x; } @end 请注意在@implementation指令后面声明的实例variables。 现在让我感到吃惊的是,一个实例variables实际上可以在实现文件中声明,而不是一个静态variables。 我的问题如下: 这是在iOS […]

如何禁用Xcode4.2自动引用计数

今天,我已经更新我的xCode到4.2版本,而且我想禁用ARC,我也search与谷歌。 但不能解决我的问题。 根据search结果,在目标设置中,我找不到“Objective-C自动引用计数”项目,所以没有机会将其设置为NO。 我find了一个项目,也使用search字段。 而且有人知道最新的Xcode4.2,如何禁用项目的ARC,而不是特定的文件。 非常感谢。

如何在xcode项目中启用/禁用ARC?

如果一个项目已经创build了禁用ARC,我该如何启用它,反之亦然?