草庐IT

copy-initialization

全部标签

ios - `UnsafeMutablePointer.initialize()`到底是做什么的?

以下是我的猜测。请大家指出我理解错误的部分。如果我有一个类,其中一个实例占用128位,叫做Class128Bits.我的程序在64位计算机上运行。首先,我调用letpointer=UnsafeMutablePointer.allocate(capacity:2)内存布局应该是这样的:000-063064bitschaos064-127064bitschaos128-255128bitschaos256-383128bitschaos如果我调用pointer.pointee=aClass128Bits,它崩溃了,因为前两个网格中的指针还没有被初始化。访问它们指向的内容会导致不可预测的结果

ios - Swift 3.0 中的 UICollectionViewController 错误 : must be initialized with a non-nil layout parameter

我是iOS开发新手。我一直在学习Swift,今天,我尝试使用UICollectionViewController。我的代码如下:classViewController:UICollectionViewController,UICollectionViewDelegateFlowLayout{varcolView:UICollectionView!overridefuncviewDidLoad(){super.viewDidLoad()//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.letlayout:UIColle

ios - swift 错误 : Struct 'XX' must be completely initialized before a member is stored to

我正在尝试在Swift中定义AudioStreamBasicDescription。在Objective-C中,我使用了如下代码。AudioStreamBasicDescriptionASBD;ASBD.mSampleRate=8000;ASBD.mFormatID=kAudioFormatLinearPCM;ASBD.mFormatFlags=kAudioFormatFlagsCanonical|kAudioFormatFlagIsSignedInteger|kAudioFormatFlagIsPacked;ASBD.mFramesPerPacket=1;ASBD.mChannels

opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ]

如果遇到了OpenSSL错误opensslErrorStack:[‘error:03000086:digitalenveloperoutines::initializationerror’],并且使用的是Node.js,可以尝试以下解决方案:“dev”:“setNODE_OPTIONS=–openssl-legacy-provider&&vue-cli-serviceserve”找到项目的package.json文件。在"scripts"部分“dev”:“vue-cli-serviceserve”添加“setNODE_OPTIONS=–openssl-legacy-provider”设置为“d

ios - 它显示 "required initializer init must be provided in subclass of UIControl"当我覆盖 init(frame : CGRect)

此代码有效:importUIKitclasswheel:UIControl{}但是这段代码没有:classwheel:UIControl{overrideinit(frame:CGRect){super.init(frame:frame)}当我覆盖init(frame:CGRect)而不是init(coderaDecoder:NSCoder).为什么我必须执行init(coderaDecoder:NSCoder)?如果我没有实现init(frame:CGRect)为什么我不需要实现它?我找到了一个类似的StackOverflow帖子,但没有解释:Swift:Error:'require

ios - 如何使用消息 "outlined copy of Optional"调试崩溃?

我有一个Swift4应用程序,突然间我开始收到许多崩溃记录消息outlinedcopyofAccount?。堆栈跟踪中引用了几个不同的文件,但最常发生在应用程序的入口点。我无法重现错误。每次崩溃都发生在iOS10.3.3中,Apple无法下载模拟器。除了一个以“我忘记了如何修复此问题”结尾的Twitter线程外,我也找不到任何提及此错误消息的信息。有没有人看到这个并且能够修复它?这是一些堆栈跟踪。对于上下文,Requestable是一个枚举,在tableView(_:cellForRowAt:)代码中引用了一个实例,而Account是一个结构也在那里引用。根据一些用户的说法,他们到达此

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

ios - Swift 类中的自定义初始化给出 'property not initialized at implicitly generated super.init call' 错误?

我正在尝试创建一个简单的类用作我的MKMapView的注释。我正在获取要解析到这些注释对象中的数据,并认为用字典初始化注释是个好主意,并在这个模型类中而不是在UIViewController。不过,我似乎无法摆脱编译器错误,每当我尝试修复一个错误时,就会出现另一个错误。当前正在获取未在隐式生成的super.init调用中初始化的“属性self.coordinate”。调用super.init()只会产生不同的错误“Propertyself.coordinatenotinitializedatsuper.initcall”,无论我在哪里在方法中调用super.init()。任何帮助将非常

ios - Swift 3.0 中的 Date.copy()

自从切换到Swift3.0,以及随之而来的NSDate更改为Date,该类不再符合NSCopying协议(protocol)。在Swift2中,这是有效的:letnewDate=oldDate.copy()但现在返回一个编译器错误。在这种情况下,复制Date对象的最佳方法是什么?letnewDate=Date(timeIntervalSince1970:oldDate.timeIntervalSince1970)这样就可以了,但看起来不是特别优雅。并且它可能(理论上)容易受到精度损失的影响,因为TimeInterval是Double(而且我们无法确认Date对象内部使用-或始终使用-D

ios - Swift - NSIndex forRow inSection Initializer

我有以下代码:varpath=NSIndexPath(forRow:index,inSection:0);我收到一条编译器警告:调用中的额外参数“inSection”为什么?我在这里的文档中看到了初始化程序:https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSIndexPath_UIKitAdditions/index.html#//apple_ref/occ/clm/NSIndexPath/indexPathForRow:inSection:我导入了UIKit,甚至尝试做类似的事情:varpa