草庐IT

retainable

全部标签

objective-c - 转义闭包是如何在 Swift 3 中实现的(底层)?它们是否像在 objective-c 中那样隐式地 block_copied/retained?

我想了解转义闭包在Swift3中是如何工作的?来自Objective-C世界,对于闭包可以逃避其封闭函数返回的场景,您必须按照以下思路做一些事情:@property(nonatomic,copy/strong)void(^callback)(NSData*rawData);-(BOOL)someFunctionThatConsumesABlock:(void(^)(NSData*rawData))block{if(callback){self.callback=block;returnYES;}returnNO;}-(void)someFunctionThatExecutesAtSom

Swift 包管理器和 Xcode : Retaining Xcode Settings?

我正在使用Swift开发服务器并使用Swift包管理器。并且发现在我的MacOS系统上进行开发时生成一个Xcode项目以使用Xcode作为我的IDE很方便(即,有时,我的包依赖项必须更新。我一直在使用swiftpackagegenerate-xcodeproj来执行此操作。此时我的问题出现了——我在Xcode中创建了一些设置。例如,我设置了一个DEBUG标志,并且我有一个.plist文件位于Copy文件阶段。当我重新生成Xcode项目时,这些文件丢失了。看来我不能简单地使用swiftpackageupdate,因为有时文件在依赖项中发生变化,而这些文件不会传播到Xcode项目。我想要的

Swift 2.0 复制 OBJC_ASSOCIATION_RETAIN

我正在扩展Swift2.0中的一些类以使用ReactiveCocoa3.0(swift-2.0分支),但遇到了一些麻烦。我关注了ColinEberhardt'stutorial,并复制粘贴了他的一些UIKitextensionlogic转到我的OSX应用程序。除了这个属性之外,它都编译得很好:UInt(OBJC_ASSOCIATION_RETAIN),这给了我以下编译器错误。useofunresolvedidentifier如何访问此属性?我试过importObjectiveC和#import在头文件中,但似乎没有任何效果。funclazyAssociatedProperty(host

java - Java是如何解决垃圾回收中的retain cycles的?

我知道一个保留周期(至少在Objective-C和Swift中)是指两个对象声称拥有彼此的所有权(它们相互引用)。在Objective-C中,我们可以通过声明其中一个weak来解决这个问题。根据我的阅读和理解,JavaGC不受保留循环的影响,我们不必担心弱引用。它是如何解决的? 最佳答案 Java(JVM)垃圾收集器的工作方式是从对象树的根部寻找“可达”对象。如果无法访问它们(如果它们没有外部对象引用),则可以丢弃整个对象图。本质上,它只是从根节点到叶节点遍历树,并标记它遇到的所有对象。清除堆中未被标记对象占用的任何内存(标记为空闲

ios - 我是否应该在自动引用计数 (ARC) 下继续使用 iVar 和 @property (nonatomic, retain) 加上 @synthesize?

我一直在声明即时变量(iVar),然后在接口(interface).h文件中声明@property有一段时间了。@interfaceMainGameViewController:UIViewController{UserFactorsViewController*userFactorsViewController;UITableView*myTableView;}@property(nonatomic,retain)UserFactorsViewController*userFactorsViewController;@property(nonatomic,retain)IBOutle

ios - 我是否应该在自动引用计数 (ARC) 下继续使用 iVar 和 @property (nonatomic, retain) 加上 @synthesize?

我一直在声明即时变量(iVar),然后在接口(interface).h文件中声明@property有一段时间了。@interfaceMainGameViewController:UIViewController{UserFactorsViewController*userFactorsViewController;UITableView*myTableView;}@property(nonatomic,retain)UserFactorsViewController*userFactorsViewController;@property(nonatomic,retain)IBOutle

objective-c - 什么时候需要 NS_RETURNS_RETAINED?

以下面的例子为例:-(NSString*)pcenNS_RETURNS_RETAINED{return(__bridge_transferNSString*)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridgeCFStringRef)self,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);}是否正确放置NS_RETURNS_RETAINED那里?另一个例子:+(UIImage*)resizeImage:(UIImage*)imgtoSize:(CGS

objective-c - 什么时候需要 NS_RETURNS_RETAINED?

以下面的例子为例:-(NSString*)pcenNS_RETURNS_RETAINED{return(__bridge_transferNSString*)CFURLCreateStringByAddingPercentEscapes(NULL,(__bridgeCFStringRef)self,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);}是否正确放置NS_RETURNS_RETAINED那里?另一个例子:+(UIImage*)resizeImage:(UIImage*)imgtoSize:(CGS

ios - 代理的属性 "assign"和 "retain"

对于iOS开发者来说,委托(delegate)几乎无处不在。而且看起来我们需要使用“分配”而不是像这样的委托(delegate)保留@property(assign)iddelegate;原因是为了避免循环问题WhyareObjective-Cdelegatesusuallygiventhepropertyassigninsteadofretain?看了很多代码,他们还在用“retain”。所以这里的问题是,如果我们对委托(delegate)使用保留,我们还会遇到循环问题吗?谢谢 最佳答案 documentation说:Retain

ios - 代理的属性 "assign"和 "retain"

对于iOS开发者来说,委托(delegate)几乎无处不在。而且看起来我们需要使用“分配”而不是像这样的委托(delegate)保留@property(assign)iddelegate;原因是为了避免循环问题WhyareObjective-Cdelegatesusuallygiventhepropertyassigninsteadofretain?看了很多代码,他们还在用“retain”。所以这里的问题是,如果我们对委托(delegate)使用保留,我们还会遇到循环问题吗?谢谢 最佳答案 documentation说:Retain