草庐IT

Initialization

全部标签

swift - 如何让deinit在swift中生效

我有一个汽车类。假设一辆汽车开往垃圾场,这辆车不应再计入总人口。我有deinit函数,但如何系统地从汽车数量中删除汽车?也就是说,如何让deinit生效呢?我有一个类变量isJunk但不知道如何使用它来完成这项工作。classCar{staticvarpopulation:Int=0varisJunk:Bool=falsevarcolor:Stringvarcapacity:Intvardriver:Bool?varcarOn:Bool=falseinit(carColor:String,carCapacity:Int){self.capacity=carCapacityself.co

ios - 在 Swift 中继承 UIAlertAction 的问题

这是我的代码:classCustomAlertAction:UIAlertAction{init(title:String){super.init(title:title,style:UIAlertActionStyle.Default){(action)->Voidin}}}但是我得到了以下编译错误:Mustcalladesignatedinitializerofthesuperclass'UIAlertAction'我知道UIAlertAction的指定初始化程序是init()。但是UIAlert的init(title,style,handler)不会调用它指定的初始化器init(

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题:qt.network.ssl:QSslSocket::connectToHostEncrypted:TLSinitializationfailed这个问题的出现主要是使用了https请求:HTTPS≈HTTP+SSL,即有了加密层的HTTP所以Qt 组件库需要OpenSSLdll 文件支持HTTPS解决:1.加入以下两行代码获取QT是否支持opensll以及支持的版本//获取Qt所支持的版本qDebug() 2.OpenSSL支持情况:false,那说明当前Qt不支持OpenSSL,需要根据QT支持的版本号进行安装 OpenSSL如果QT支持的版本号跟我的

ios - 如何从 AppDelegate 实例化多个 View Controller ?

有一个包含3个ViewController(V1、V2和V3)的容器View。我可以通过向左或向右滑动来从A、B或C切换。A或B都包含自己的CollectionView。如果我点击A或B内CollectionView中的任何单元格,PlayerVC(在上图中名为Player^^)启动并开始使用AVPlayer播放视频。问题是:由于我使用的是通用链接,因此用户会直接进入playerView播放视频,但是当他们按下完成按钮时,应用程序会崩溃。我相信的问题是因为ViewController上的其余部分未初始化?如何初始化容器View和其他ViewController?或者,如果这不是问题所在

Swift 如何将 `struct` 的默认初始值设定项设为私有(private)

我们的代码中有这样的结构:structFoo{letbar:StringstaticletsharedInstance=Foo(bar:"blah")}除了调用者仍然可以用初始化Foo实例的另一个实异常(exception),它工作得很好letfoo=Foo.init(bar:"blah")有没有办法让生成的初始化程序私有(private)化?我们尝试像这样显式定义初始值设定项:structFoo{letbar:StringstaticletsharedInstance=Foo(bar:"blah")privateinit(bar:String){self.bar=bar}}它可以工作

swift - 在没有 Storyboard或 xib 文件的情况下实例化 UIViewController

我一直在寻找一种方法来实例化未附加到Storyboard或xib文件的自定义UIViewController类。当然,当我尝试初始化UIViewController时,它需要一个NSCoder对象。但是我不知道这个NSCoder对象是从哪里来的,也不知道如何正确地制作它。文档说它是一个接口(interface)声明对象。你知道我如何制作一个NSCoder对象来初始化我的UIViewController吗?或者我可以在应用程序的某处获取NSCoder对象吗?publicclassController:UIViewController,UIAlertViewDelegate{var_vie

swift - 需要帮助理解便捷初始化器和 Swift 中实例变量解包之间的交互

我正在研究有关初始化器和展开的Swift文档,但我未能理解有关其工作方式的一些基本知识。目标:我想子类化SKShapeNode并使用letreverse:Bool来定义一个只在构造函数中设置且永远不需要修改的实例变量.这似乎是定义此类变量的正确方法,但这在下面的代码中出现了问题。下面的代码有效,也就是说,它可以编译,不会崩溃并让我得到想要的行为。publicclassBeamedNotesNode:SKShapeNode{varnotes:[Note]!varnoteNodes:[NoteNode]?varbeam:BeamNode?varchildBeams:[BeamNode]?v

swift - 为什么 Swift 不强制我指定的初始化程序调用 super?

这段代码在Swift中是合法的:classSnapper:NSObject{varanim:UIDynamicAnimatorinit(referenceView:UIView){self.anim=UIDynamicAnimator(referenceView:referenceView)//super.init()}}请注意,在我的初始化程序中我没有调用super.init();我注释掉了那一行。但是Swift编译器不会提示。为什么?我认为有一条规则,您的指定构造器必须调用其父类(superclass)的指定构造器。我有一个父类(superclass),即NSObject。这是一个

ios - Swift addSubview() 在使用 init 创建的 View 上(重复 :count) doesn't work

这是一个使用init(repeating:count)创建4个subview的ViewController。在viewDidLoad中,我将它们添加为subview并设置它们的框架。当我运行应用程序时,只添加了最后一个View。classViewController:UIViewController{letsubviews=[UIView].init(repeating:UIView(),count:4)overridefuncviewDidLoad(){super.viewDidLoad()foriin0..这是相同的代码,除了我使用的不是init(repeating:count)关

swift - 为什么 Swift 不允许在 class init 中给 self 赋值,而在 protocol init 中却不允许?

我经常发现自己喜欢在struct、enum和protocol的初始化器中,我可以编写类似self=someValue。当我有一些预定义值或正在克隆现有值时,这非常有用。但是,此语法不适用于classes。我也不知道为什么。Cannotassigntovalue:'self'isimmutable如果问题是双重初始化,Swift编译器知道我是否、何时以及在何处调用指定的super或self初始化器,因此它知道我是否完成初始化此实例。如果担心的是我还没有调用指定的初始值设定项,那么它应该没问题,因为我只是让这个实例成为对另一个实例的引用(2个变量1个指针)。如果担心的是并发访问可能导致se