草庐IT

arc4_random

全部标签

objective-c - ARC时代的属性(property)与ivar

据我了解,现在设置ivar会保留分配给它的对象,因为设置变量默认为strong限定符。因为ivars在声明它们的对象的范围内,而strong将对象保留在变量的范围内,这意味着当包含ivar的对象仍然存在时,永远不会释放ivars值。这对吗?如果是这样,我是否认为在内存管理方面,保留(强)属性和简单ivar之间不再有区别? 最佳答案 如果是变量:在使用ARC的类中声明.仅用于类实现(不作为类接口(interface)的一部分公开)。不需要任何KVO.不需要任何自定义getter/setter。然后将其声明为没有相应@property/

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

如果已在禁用ARC的情况下创建项目,我该如何启用它,反之亦然? 最佳答案 打开您的项目并选择编辑->重构->转换为Objective-CARC。这将开始检查您的代码是否已准备好进行转换。另见Clang文档:Objective-CAutomaticReferenceCounting(ARC)如何禁用ARC已回答here 关于objective-c-如何在xcode项目中启用/禁用ARC?,我们在StackOverflow上找到一个类似的问题: https://s

objective-c - ARC 下的 NSString 属性应该是强的还是复制的?

不使用ARC编译时,建议对NSString等数据类型使用copy属性。我找不到关于在ARC模式下使用copy的适当文档。有人能告诉我什么适用于ARC吗? 最佳答案 仍然建议复制,因为您希望避免传递可变字符串然后在您不知情的情况下更改它。一份副本保证你拥有的字符串不会改变。 关于objective-c-ARC下的NSString属性应该是强的还是复制的?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

objective-c - 生成启用 ARC 的 UUID 字符串

我需要在启用ARC的某些代码中生成UUID字符串。在做了一些研究之后,这是我想出的:CFUUIDRefuuid=CFUUIDCreate(NULL);NSString*uuidStr=(__bridge_transferNSString*)CFUUIDCreateString(NULL,uuid);CFRelease(uuid);我是否正确使用__bridge_transfer以避免泄漏ARC下的任何对象? 最佳答案 我觉得不错。这就是我使用的(以gist的形式提供)-(NSString*)uuidString{//Returnsa

objective-c - 如何为单个文件启用 ARC

我想将一个使用ARC编写的Objective-C类引入一个旧项目。互联网提供了许多关于如何为您的项目启用ARC然后为单个文件禁用它的引用,但我想做相反的事情。我想保留项目原样,即使用手动引用计数,然后仅为新文件启用ARC。(我的搜索在这里失败了。)这可能吗?怎么样? 最佳答案 将-fobjc-arc标志添加到您想要启用ARC的任何文件中,如ARCdocumentation中所述. 关于objective-c-如何为单个文件启用ARC,我们在StackOverflow上找到一个类似的问题:

objective-c - NSString 到 CFStringRef 和 CFStringRef 到 ARC 中的 NSString?

我想了解从ARC中的CFStringRef获取NSString的正确方法?反方向也一样,ARC中的CFStringRef到NSString?在不造成内存泄漏的情况下,正确的方法是什么? 最佳答案 通常NSString*yourFriendlyNSString=(__bridgeNSString*)yourFriendlyCFString;和CFStringRefyourFriendlyCFString=(__bridgeCFStringRef)yourFriendlyNSString;现在,如果你想知道为什么会有__bridge关键

objective-c - ARC : strong or retain? 的@property 定义

使用Xcode4.2和ARC,我注意到自动生成的NSManagedObject代码对于属性仍然是这样的:@property(nonatomic,retain)NSString*someString;1)现在不应该将retain替换为strong或weak吗?2)为什么自动生成的代码还是使用retain3)在此属性语句中,retain的正确替换是什么?我目前正在使用NSFetchRequest调试一个问题,我认为这可能是问题的根源。想法? 最佳答案 1)Shouldn'tretainnowbereplacewithstrongorwe

objective-c - 无法在 Mac 上使用 ARC 使用 respondsToSelector

当我在ARC环境中调用respondsToSelector时,我收到以下错误消息AutomaticReferenceCountingIssueNoknowninstancemethodforselectorrespondsToSelector:这是标题#import@classMTScrollView;@protocolMTScrollViewDelegate-(void)scrollViewDidScroll:(MTScrollView*)scrollView;@end@interfaceMTScrollView:NSScrollView{}@property(nonatomic,w

objective-c - ARC 是否支持调度队列?

我正在阅读苹果关于“调度队列的内存管理”的文档:Evenifyouimplementagarbage-collectedapplication,youmuststillretainandreleaseyourdispatchqueuesandotherdispatchobjects.GrandCentralDispatchdoesnotsupportthegarbagecollectionmodelforreclaimingmemory.我知道ARC不是垃圾收集器,但我想确定我不需要dispatch_retain和dispatch_release我的dispatch_queue_t

iphone - ARC 还是不 ARC?有什么优点和缺点?

关闭。这个问题需要更多focused.它目前不接受答案。想改善这个问题吗?更新问题,使其仅关注一个问题editingthispost.7年前关闭。Improvethisquestion我还没有使用ARC,因为我目前正在处理的项目中的大部分代码都是在iOS5.0之前编写的。我只是想知道,不手动保留/释放(以及由此产生的可能更可靠的代码?)的便利性是否超过了使用ARC的任何“成本”?您对ARC有什么经验,您会推荐它吗?所以:ARC能为项目带来多少好处?ARC是否有像Java中的垃圾收集那样的成本?您是否一直在使用ARC,如果使用过,到目前为止您是如何找到它的?