automatic-ref-counting相关内容
使用 alloc 或 autorelease 初始化程序更好(更快,更高效)。例如: - (NSString *)hello:(NSString *)name { return [[NSString alloc] initWithFormat :@“Hello,%@”,name]; } 或 - (NSString *)hello:(NSString *)
..
在启用ARC的代码中,如何在使用基于块的API时修复关于潜在保留周期的警告? 警告: 在此块中强烈捕获“请求”可能导致此代码段生成的保留周期 代码: ASIHTTPRequest * request = [[ASIHTTPRequest alloc] initWithURL:... [请求setCompletionBlock:^ { NSDictionary *
..
我无法完全明白我所看到的 Objective-C “类继承”。是/这些... 在 @implementation ( .m )文件? 类类别的另一个名称? (不太可能, ASFAIK 类别不能有Ivars,期间) 类别额外资讯的另一个名称? 这是一个ARC特有的“功能”吗? 是否有特定的运行时或其他使用要求? 这是创建 @property ,以及?为什么会比设置 @interf
..
我正在尝试构建一个偏好窗格作为学习OS X开发的一部分。在下载Apple的首选项窗格示例代码,并试图构建项目我得到以下错误: clang:error:不能同时指定'-fobjc-arc '和'-fobjc-gc' 在构建设置中关闭垃圾收集可以正确构建项目,但是一旦在本地机器上安装了首选项窗格示例不会开始说, “您无法打开PrefsPane首选项,因为它不能在基于Intel的Mac
..
如果我有此代码, +(MyCustomClass *)myCustomClass { return [ [[MyCustomClass alloc] init] autorelease]; } 此代码保证返回的对象是自动释放的。 在ARC中相当于什么? 解决方案 ARC中没有等效项,自己做。 您只需使用 - +(MyCusto
..
我把一个项目变成ARC,但有一些代码只能使用ARC禁用。我意识到 -fno-objc-arc 可用于在每个文件的基础上禁用ARC。但是我想知道是否可以在每个函数的基础上禁用ARC。 我知道警告可以在每行基础上切换,例如 #pragma clang诊断推送 #pragma clang诊断忽略“-Weverything” //代码在这里 #pragma clang诊断pop
..
我想在Objective-C上做一些运行时编程。 为了做到这一点我覆盖了 resolveClassMethod 方法。 不幸的是我想出了一些编译错误,活动: 错误:选择器'dynamic'没有已知的类方法 如果我使用gcc或clang没有ARC( -fno-objc-arc 选项传递),一切正常,除了警告而不是错误。 我知道ARC需要知道调用的方法的名称,以了解如何使用返
..
我写了一个简单的按钮类,像这样: @interface MyButton:NSObject { id对象; SEL action; } @property(strong)id object; @property SEL action; - (void)fire; @end @implementation MyButton @synthesize
..
使用ARC编译时,方法参数通常显示为保留在方法开头,并在结束时释放。这个保留/释放对似乎是多余的,并且与ARC“生成你将会已经写的代码”的想法相矛盾。没有人在那些黑暗的,ARC之前的日子对所有的方法参数执行额外的保留/释放只是为了安全,他们吗? 考虑: @interface测试:NSObject @end @implementation测试 - (void)tes
..
我惊讶地发现以下行为... @interface Foo:NSObject - (void)addBar:(id)aBar withCompletion:(void(^)(void))completion; @end @interface AwesomeClass:NSObject @property(strong,nonatomic)Foo * foo;
..
如果我阅读Mike Ash的“Zeroing Weak References”writeup 是正确的,弱引用就像 assign 没有ARC的引用。然而,如果被引用的对象被释放,而不是获得“悬挂指针”(意味着指向被释放对象的指针),则指针被设置为 nil 。 这是正确的,标记为 weak 或 assign (当ARC处于活动状态时) 如果这是正确的,这将消除很多SIGABRT。 p>
..
使用ARC,我无法再将 CGColorRef 转换为 id 。我知道我需要做一个桥梁。根据 clang docs : 桥接投放是使用以下三个关键字之一注释的C风格的投射: (__bridge T)op 将操作数转换为目标类型 T 。如果 T 是可保留对象指针类型,则 op 必须有 保留指针类型。如果 T 是不可保留的指针类型,则 则op必须具有可保留的对象指针类型。否则铸造 是
..
我有一个简单的目标c对象 NSManagedObjectContext * moc = nil 现在我需要将它传递给接受类型的参数的ARC环境中的函数。 void * volatile * value 我尝试了 (__bridge void *)moc)) 但我得到以下编译器错误 地址表达式必须是左值或函数指针 我也试过了 void ** a
..
将Objective-C程序转换为Objective-C ARC时,会出现以下错误: -C指针类型'NSString *'到C指针类型'CFStringRef'(aka'const struct __CFString *')需要一个桥接转型“ 代码如下: - (NSString *)_ encodeString:(NSString *)string { N
..
我是html5的新用户,并使用canvas来绘制我的应用程序之一的圆圈。我画了几个弧形成一个圆。它工作正常。但是我的问题是,我想为每个弧关联一个单独的鼠标事件。 我偷偷摸摸,发现KinteticJS可能很有用。我想知道是否有任何其他方法,可以用于连接鼠标事件为我使用画布创建的每个弧。请注意,我只使用一个画布没有ghost画布,我不想使用SVG。下面是我使用的代码的行: context
..
我需要一个日历查看我的iOS 5项目。我在github上发现了这个库,这正是我需要的。然而,它是对iOS iOS5之前的版本的bult。 作为集成的初步步骤,我下载了zip文件并将项目转换为ARC兼容的iOS 5项目,使用XCode 4中的功能“refactor-> Convert to Objective-C ARC“。我bult那个项目,它建立良好的iOS5。 现在我遵循如何集成文
..
我需要某种 liblisp (以C11),这将需要处理的基本功能,pretty就像什么 libobjc 做为Objective-C语言。 修改 我rewritting的问题比较特殊的东西。 我有一个这样的实现: typedef结构{利弊 void *的汽车,* CDR; } * cons_t;cons_t cons_init(void *的,无效*); 无效* cons_get_ca
..
我已经工作了一段时间一个项目现在,我决定将跳转到ARC。 我碰到一些code这是每一次轰炸了,我想知道这是为什么。我设法简化下来到这个片段: 的typedef __strong ID MYID;INT主(INT ARGC,CHAR *的argv []) { MYID * ARR =(MYID *)malloc的(的sizeof(MYID)* 4); ARR [0] = @“A”;
..
我创建一个C数组是这样的: unsigned char型colorComps [] = {2,3,22,55,9,1}; 我想传递给一个Objective-C对象的初始化。 所以,我认为我已经把阵列上的堆:为size_t arrayByteSize = numColorCompVals * sizeof的(无符号字符); 无符号字符* colorCompsHeap =(无符号字符*)mal
..
我的项目包含XMPPFramework其中包含有与ARC使用的文件。但我的项目是不ARC,不能因转化为链接到它的某些其他库。 我如何强制编译器只对某一类使用ARC? 解决方案 这是
..