所以,我有课: @interface Controller : NSObject { UILabel* fileDescription; } @property(strong, nonatomic) UILabel* fileDescription; 我需要使用方法dealloc属性fileDescription将等于零? 例如: -(void)dealloc { fileDescription = nil; } 如果不是的话,谁将解雇fileDescription使用的内存?
只需在新的xcode 4.3.1上运行ARC重构工具,并注意到我的(nonatomic,retain)属性正在被replace为(非primefaces的),而不是(非primefaces的,强大的),就像以前的xcode一样。 我的代码似乎运行良好后,这个变化,所以我认为这是默认强大无论如何,任何人都知道为什么事情已经改变与ARC转换器?
假设我们有三个对象:祖父母,父母和孩子。 祖父母保留父母,父母保留孩子,孩子保留父母。 祖父母释放父母。 在这种情况下会发生什么?
在iOS项目中使用新的自动引用计数(ARC)内存pipe理风格有哪些优缺点? 你可以select在使用iOS 5.0 SDK进行开发时不使用ARC吗? 您是否推荐ARC或手动引用计数(MRC)用于新项目? 使用ARC的应用程序是否能够在比iOS 5.0更早的操作系统版本上运行?
我有一个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]; }
如果我读到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调用之一吗? 任何帮助,将非常感激。
我正在观看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 […]
今天,我已经更新我的xCode到4.2版本,而且我想禁用ARC,我也search与谷歌。 但不能解决我的问题。 根据search结果,在目标设置中,我找不到“Objective-C自动引用计数”项目,所以没有机会将其设置为NO。 我find了一个项目,也使用search字段。 而且有人知道最新的Xcode4.2,如何禁用项目的ARC,而不是特定的文件。 非常感谢。
如果一个项目已经创build了禁用ARC,我该如何启用它,反之亦然?