草庐IT

objective-c - 在什么情况下,我们需要在 ARC 下编写 __autoreleasing 所有权限定符?

我正在尝试完成这个谜题。__strong是所有Objective-C可保留对象指针(如NSObject、NSString等)的默认值。它是一个强引用。ARC在作用域末尾用-release平衡它。__unsafe_unretained等于旧方法。用于不保留可保留对象的弱指针。__weak与__unsafe_unretained类似,只是它是一个自动归零的弱引用,这意味着一旦引用的对象被释放,指针就会被设置为nil。这消除了悬空指针和EXC_BAD_ACCESS错误的危险。但是__autoreleasing到底有什么用呢?我很难找到关于何时需要使用此限定符的实际示例。我相信它仅适用于需要指

objective-c - 使用 ARC 时是否在 dealloc 中将属性设置为 nil?

我正在尝试学习iOS5中的自动引用计数。现在这个问题的第一部分应该很简单:我确实不需要写明确的吗?使用ARC时我的dealloc中的release-property语句?其他话,以下是真的NOT需要明确解除分配?@interfaceMyClass:NSObject@property(strong,nonatomic)NSObject*myProperty;@end@implementationMyClass@synthesizemyProperty;@end我的下一个更重要的问题来自TransitioningtoARCReleaseNotes中的一行。文件:Youdonothaveto

xcode - 如何强制 xcode 在特定文件上使用 ARC?

我的项目包含XMPPFramework,其中包含一个必须与ARC一起使用的文件。但是我的项目是非ARC并且由于链接到它的某些其他库而无法转换。如何强制编译器仅在某个类上使用ARC? 最佳答案 这是thisquestion的逆问题.不同之处在于您将使用-fobjc-arc而不是-fno-objc-arc。 关于xcode-如何强制xcode在特定文件上使用ARC?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

objective-c - ARC下归零弱引用的集合

如何在ARC下获得一组清零弱引用?我不希望数组保留对象。我希望数组元素在被释放时自行删除,或者将这些条目设置为nil。同样,我怎样才能用字典做到这一点?我不希望字典保留这些值。同样,我希望字典元素在释放值时自行删除,或者将值设置为nil。(我需要保留作为唯一标识符的键,至少在相应的值被释放之前。)这两个问题涵盖了相似的基础:NSArrayofweakreferencestoobjectsunderARCHavingalistofunretainedidobjects?但两者都没有要求归零引用。根据文档,NSPointerArray和NSHashMap都不支持ARC下的弱引用。NSVal

objective-c - ARC下归零弱引用的集合

如何在ARC下获得一组清零弱引用?我不希望数组保留对象。我希望数组元素在被释放时自行删除,或者将这些条目设置为nil。同样,我怎样才能用字典做到这一点?我不希望字典保留这些值。同样,我希望字典元素在释放值时自行删除,或者将值设置为nil。(我需要保留作为唯一标识符的键,至少在相应的值被释放之前。)这两个问题涵盖了相似的基础:NSArrayofweakreferencestoobjectsunderARCHavingalistofunretainedidobjects?但两者都没有要求归零引用。根据文档,NSPointerArray和NSHashMap都不支持ARC下的弱引用。NSVal

objective-c - 使用 ARC,有什么更好的 : alloc or autorelease initializers?

使用alloc或autorelease初始化程序是否更好(更快、更高效)。例如:-(NSString*)hello:(NSString*)name{return[[NSStringalloc]initWithFormat:@"Hello,%@",name];}或-(NSString*)hello:(NSString*)name{return[NSStringstringWithFormat:@"Hello,%@",name];//return[@"Hello,"stringByAppendingString:name];//evensimpler}我知道在大多数情况下,这里的性能应该无

objective-c - 使用 ARC,有什么更好的 : alloc or autorelease initializers?

使用alloc或autorelease初始化程序是否更好(更快、更高效)。例如:-(NSString*)hello:(NSString*)name{return[[NSStringalloc]initWithFormat:@"Hello,%@",name];}或-(NSString*)hello:(NSString*)name{return[NSStringstringWithFormat:@"Hello,%@",name];//return[@"Hello,"stringByAppendingString:name];//evensimpler}我知道在大多数情况下,这里的性能应该无

objective-c - 在 ARC 中清零弱引用

如果我阅读MikeAsh的"ZeroingWeakReferences"writeup是正确的,弱引用就像没有ARC的assign引用。但是,如果引用的对象被释放,而不是获得“悬空指针”(意味着指向释放对象的指针),指针被设置为nil。这是对的吗,标记为weak或assign的属性是否会发生这种情况(当ARC处于事件状态时)?如果这是正确的,这将消除很多SIGABRT。 最佳答案 这基本上是对的,但是assign属性仍然像以前一样被处理,只有weak属性被归零。另一个需要注意的是,弱引用归零仅在MacOSX≥10.7和iOS≥5中可

objective-c - 在 ARC 中清零弱引用

如果我阅读MikeAsh的"ZeroingWeakReferences"writeup是正确的,弱引用就像没有ARC的assign引用。但是,如果引用的对象被释放,而不是获得“悬空指针”(意味着指向释放对象的指针),指针被设置为nil。这是对的吗,标记为weak或assign的属性是否会发生这种情况(当ARC处于事件状态时)?如果这是正确的,这将消除很多SIGABRT。 最佳答案 这基本上是对的,但是assign属性仍然像以前一样被处理,只有weak属性被归零。另一个需要注意的是,弱引用归零仅在MacOSX≥10.7和iOS≥5中可

objective-c - 我应该在 ARC 的 init 方法中引用 self.property 吗?

一个简单的问题。如果我有一个属性和一个用相同名称声明的ivar:在.h文件中:(Reminder*)reminder;@property(nonatomic,strong)(Reminder*)reminder;在.m文件中,如果我使用ARC,我应该使用ivar还是init方法中的属性?-(id)initWithReminder:(Reminder*)reminder_{self=[superinit];if(self){reminder=reminder_;}returnself;}或者我应该像这样使用该属性来获得自动引用计数的好处:-(id)initWithReminder:(Re