草庐IT

objective-c - ARC如何确定是使用retain还是copy?

作为带有ARC选项的LLVM编译器自动为我们添加了retain、copy、release和autorelease,但是ARC是如何判断是使用retain还是copy的呢?提前致谢:) 最佳答案 ARC不添加copy,如果您需要副本,那仍然是您的责任。它只为您管理retain和release。如果您手动复制一些东西,虽然它知道您得到了一个它必须在某个时间释放的新对象。 关于objective-c-ARC如何确定是使用retain还是copy?,我们在StackOverflow上找到一个类似

ios - 防止retain-cycle的两种block方式

如果可能有一个保留周期,我通常使用这样的block:-(void)someFunction{__weak__typeof(self)weakSelf=self;[selfsetHandler:^{[weakSelfdoSomething];}];}不过最近看到另一种方式是这样的:-(void)someFunctionWithParam:(id)param{__weak__typeof(param)weakParam=param;[selfsetHandler:^{__typeof(weakParam)strongParam=weakParam;[strongParamdoSomethi

iphone - Xcode 4 ARC 重新检查错误 - "changes retain/release properties of pointer"

正在尝试通过ARC转换的重新检查,但我不确定如何解决此问题。方法和属性不一致,我不知道该怎么办:-(void)getObjects:(id*)objectsandKeys:(id*)keys{return[self.itemsgetObjects:objectsandKeys:keys];}@interfaceSoapArray:SoapObject{NSMutableArray*items;}@property(nonatomic,retain)NSMutableArray*items;错误:将“__autoreleasingid*”发送到“__unsafe_unretainedid

iphone - Objective-C : NSMutableArray does not retain objects

我被这个难住了,我在数组中设置了对象,但是当我在它们都设置好后检查它时,它出现为(null)for(inti=0;i我做错了什么吗?terms在header中声明,设置为属性,并合成为NSMutableArray 最佳答案 您必须先分配并初始化数组,然后才能使用它。设置属性使其可以在类之外访问,合成器设置getter和setter但它不会分配和初始化它。NSMutableArray*terms=[[NSMutableArrayalloc]init]; 关于iphone-Objective

hadoop - Spark + yarn : How to retain logs of lost-executors

使用配置有Yarn的Spark(在client模式下,虽然与问题关系不大),我发现我的一些Executors失败。Executor是一个Yarn-Container,它的日志文件位于:/var/log/hadoop-yarn/containers/containerID。容器生成的一些(关键)事件/日志渗透到驱动程序,但不是全部。据观察,当一个Executor失败时,它的logfile会在它死后立即被清除。有什么方法可以防止这些日志因调试目的而被删除吗? 最佳答案 既然,你的yarn上有Spark,我希望这有助于收集所有日志yarn

iOS : Core Data: How to retain an ordered set of objects in a managed object

我的iOS应用程序中有一个NSManagedObject。该对象称为Round。在Round中,我与一堆Person对象有一对多关系。xCode使用NSSet作为我与Person托管对象的一对多关系的数据类型生成我的托管对象类。所以我的Round托管对象看起来像这样:@interfaceRound:NSManagedObject{}@property(nonatomic,retain)NSSet*people;@end但是NSSet不是一个有序的集合,我想保留我用来保存这些Person对象的NSArray的顺序,因为我将它分配给我的Round托管对象。我尝试将我的NSArray转换为N

iphone - iOS 开发 : Why are the retain counts for my view controller so strange?

我正在深入研究iOS开发,并且正在构建一个基于导航的应用程序,该应用程序没有完全发布被推送到导航堆栈的View之一。这是有问题的,因为ViewController永远不会被释放,所以每次ViewController被插入堆栈时,它使用的内存都会增加。所以在调查这个问题之后,我发现ViewController的保留计数真的很奇怪。一旦倒数计时器达到零,相关的ViewController就会被插入堆栈。下面是在计时器回调中创建ViewController、显示其保留计数并将其推送到导航堆栈的代码...-(void)updateCountDownTimer//DefinedinMyViewC

ios - 强引用dispatch_queue的retain cycle

在一个类中,我声明了一个线程:@property(nonatomic,strong)dispatch_queue_tdatabaseQueue;然后我执行这个线程的操作dispatch_async(self.databaseQueue,^{[self.daodeleteRetries];});这可能会产生一个保留周期吗?和当前类持有对viewControllerToDismiss的强引用,并且有一段代码如下所示:[viewControllerToDismissdismissViewControllerAnimated:shouldAnimateDismisscompletion:^{[

iphone - ARC 中的 '[[something retain] autorelease]' 是什么?

ARC中[[somethingretain]autorelease]的等价物是什么?我遇到一个问题,类DBRequest调用我的委托(delegate)来表示完成。然后,我的代表将DBRequest实例设置为nil,这是dealloc。但是当堆栈从我的委托(delegate)中弹出并跳回DBRequest时,它当然会崩溃。如果我不在ARC中,在我的委托(delegate)中我会简单地执行[[theDbRequestretain]autorelease]然后释放我对它的引用,这样它就可以存活足够长的时间直到下一个运行循环自动释放它。我应该在ARC中做什么? 最

Xcode 7.1 : Property with retain or strong attribute must be of object type

我在一个swift文件中有这个变量:varadbk:ABAddressBook!一直很好,直到Xcode7.1。现在它提示“具有保留或强属性的属性必须是对象类型。”错误在-Swift.h文件中。知道发生了什么变化会导致这种情况以及如何解决它吗? 最佳答案 如果Swift类声明了一些AdressBook属性并且此类是混合Swift/ObjC项目的一部分,则会发生此错误。Xcode然后生成Swift桥接header,其中此属性变为(nonatomic,strong),它仅适用于对象,不适用于结构。当我需要将ABRecordRef从Obj