草庐IT

dcm4chee-arc

全部标签

iphone - 非 ARC(自动引用计数)和 ARC 用户的开源

我们有一些开源库,它们通过Xcode的git模块通过代码分发到其他项目中。一些项目将保留显式保留/释放,而其他项目则希望利用自动引用计数。无论如何,在有和没有ARC的Xcode项目中是否可以编译相同的源代码?编译成静态库能行吗? 最佳答案 如果您捆绑了一个将您的开源库编译为静态库的项目,并且其他项目链接到您的静态库而不是直接编译源代码,那么这样就可以了。其他项目可以根据需要嵌入您的库的项目文件,这样您的库将在他们的之前编译,或者您可以只分发预编译的静态库。 关于iphone-非ARC(自

iphone - iOS 中的 Opencv 内存管理(带 ARC 的 Objective-c)

这可能是个愚蠢的问题,但是在iOS中编程时ARC(自动引用计数)是否与OpenCV交互?我问这个是因为我最近才开始使用OpenCV。在带有ARC的iOS上,不必担心对象,因为我只需要确保没有指针指向它们,这样它们就可以被释放。OpenCV好像也有类似的清理功能:http://opencv.willowgarage.com/documentation/cpp/memory_management.htmlWhenusingthenewinterface,themostofmemorydeallocationandevenmemoryallocationoperationsaredoneau

objective-c - Objective C arc——保留对类的引用

我想要一个Class类型的ivar,传进去之后指针一直在身边。但是不管我怎么做,arc都不让我这么做。例如,如果我声明@property(nonatomic,strong)ClassmyClass;编译器决定myClass应该是unsafe_unretained。如果我尝试这样做:-(id)initWithClass:(Class)passedInClass{if((self=[superinit])){self.myClass=passedInClass;}returnself;}发生的情况是,即使类在调用代码中不是nil,它在init方法中也是nil。除了关闭电弧,有什么办法可以解

ios - UIWebViewDelegate 在 ARC 中手动发布?

UIWebViewDelegate协议(protocol)引用指出:BeforereleasinganinstanceofUIWebViewforwhichyouhavesetadelegate,youmustfirstsettheUIWebViewdelegatepropertytonilbeforedisposingoftheUIWebViewinstance.Thiscanbedone,forexample,inthedeallocmethodwhereyoudisposeoftheUIWebView.在ARC中还有必要吗? 最佳答案

ios - 如何防止 IBOutlet 属性被释放(iOS 使用 ARC)

我正在使用ARC将Apple的SpeakHere示例中的AQRecorder类实现到我的项目中。为了让它编译,我必须创建一个类(AQRecorderController)来控制AQRecorder实例(相当于示例中的SpeakHereController)。AQRecorderController通过我的主视图Controller的Nib连接并作为属性实现。无论属性是强还是弱,都会出现问题。我的问题是,在加载ViewController后不久,AQRecorderController就被释放了,但只有在设备上进行测试时才会释放。在模拟器中,这不会发生。它发生在iPad和iPhone、i

ios - ARC 是否消除了对临时变量的需要?

在没有启用ARC的情况下,我们编写NSArray*items=[[NSArrayalloc]initWithObjects:@"a",@"b",@"c",@"d",nil];self.allItems=items;[itemsrelease];我只是想知道我们是否可以像这样在启用ARC的情况下走捷径:self.allItems=[[NSArrayalloc]initWithObjects:@"a",@"b",@"c",@"d",nil];我们可以在使用ARC时消除items吗?最佳做法是什么? 最佳答案 是的,您展示的第二个示例在A

ios - 使用 block 、集合和 ARC 时发生泄漏

我试图理解为什么这段代码会泄漏,使用ARC:-(IBAction)block2:(id)sender{NSMutableString*aString=[[NSMutableStringalloc]init];void(^aBlock)()=^{NSMutableString__unused*anotherString=aString;};NSMutableDictionary*dict=[NSMutableDictionarydictionaryWithObject:aBlockforKey:@"Key"];}如您所见,我将一个block放在一个集合中(NSMutableDiction

iphone - iOS/iPhone ARC 内存管理

__weakNSString*strin=[[NSStringalloc]initWithFormat:@"hey"];NSLog(@"weak%@",strin);//returnsweak(null)__weakNSString*strin=@"hey";NSLog(@"weak%@",strin);//returnsweakhey这两个片段之间有什么区别。为什么第二个在分配weak时返回值? 最佳答案 这是因为@"hey"是一个常量字符串文字,它将永远存在,而对第一个(分配的)字符串的弱引用不足以使其保持事件状态。

objective-c - 将旧的 Objective-C 代码转换为 ARC(自动引用计数)的问题

我正在尝试将以前没有ARC的Objective-C代码转换为ARC。我正在使用Xcode中的程序:文件>编辑>重构>转换为ARC。但我无法转换它,因为它会产生很多错误。我搜索了这个;我正在尝试更改XcodeTarget中的build设置。 最佳答案 ConverttoARC工具并不是让您的项目突然准备好ARC的Elixir。该工具的作用是删除对release和retain之类的所有调用,它还可以负责将一些autorelease池切换到新的@autorelease{}风格。在它执行任何这些操作之前,它会运行一个飞行前脚本来查找太复杂以

iphone - ARC 和可变参数导致 BAD_ACCESS

我正在浏览一个可变参数列表,当我到达列表中的最后一个对象时,我总是会收到BAD_ACCESS错误。我强烈认为它是ARC相关问题。这是我的做法:-(NSString*)replaceTokensWithStrings:(NSString*)firstKey,...{va_list_arguments;va_start(_arguments,firstKey);for(NSString*_currentArgument=firstKey;_currentArgument!=nil;_currentArgument=va_arg(_arguments,NSString*)){NSLog(@"