草庐IT

便利店

全部标签

ios - Swift:我的便利 init 看不到正常的 init

我正在尝试为我的类创建一个方便的初始化:User。我之前为另一个类(class)做过这个,并且-再次创建它-我使用了相同的代码,只是我的用户类(class)有所不同。这是我的用户类:importFoundationclassUser{//DatabaseVariablesletuserID:String?letfirstName:String?letlastName:String?letpassword:String?letemailID:String?letdob:String?//timestampletpicture:String?//URL?letlocation:Locati

swift - 父类(super class)上的通用便利 init() 受限于已初始化对象的子类?

是否可以在Swift3中编写初始化程序,以便将T限制为创建对象的类型?(它定义的类的子类)效果是//NotrealcodeextensionUIView{convenienceinit(style:(T)->Void...)whereT==self.dynamicType{self.init()forsinstyle{s(self)}}}...letv1=UIView(style:funcThatAppliesToUIView)letv2=UILabel(style:funcThatAppliesToUIView,funcThatAppliesToUILabel)

swift - 覆盖便利初始化

尝试子类化NSTextView:classMYTextView:NSTextView{init(frameframeRect:NSRect){super.init(frame:frameRect)setup()}}我收到此错误:必须调用父类(superclass)“NSTextView”的指定初始化器,在此行:super.init(frame:frameRect)。根据文档便利初始化器必须调用同一类中可用的另一个初始化器。。请参阅下面的“初始化程序链接”:https://developer.apple.com/library/prerelease/ios/documentation/s

ios - 如何快速覆盖 UIAlertController 中的便利初始化?

我试图覆盖UIAlertController中的便利初始化,但它给我一个错误,如“初始化器没有覆盖其父类(superclass)中的指定初始化器”。我如何使用继承或扩展覆盖它?我的代码如下。importUIKitclassColorAlertViewController:UIAlertController{overridefuncviewDidLoad(){super.viewDidLoad()}overridefuncdidReceiveMemoryWarning(){super.didReceiveMemoryWarning()}overrideconvenienceinit(ti

快速便利初始化和通用类

我在创建一个方便的init方法时遇到问题,该方法然后使用泛型类型参数在类上调用指定的init。这是swift3.1XCode版本8.3.2(8E2002)PlaygroundprotocolA{varitems:[String]{getset}funcdoSomething()}structSection:A{varitems:[String]=[]funcdoSomething(){print("doSomething")items.forEach{print($0)}}}classDataSource{varsections:[T]init(sections:[T]){self.s

ios - 便利初始化器的用例是什么?

在swift中有指定初始化器的概念(我假设这是我们从其他语言中知道的“普通”构造器)。但是还有一个叫做ConvenienceInitializer的东西,我确实知道怎么写,但是我失去了重点。因为,如果我理解正确的话,你可以在不写关键字convenience的情况下实现同样的事情,或者不? 最佳答案 据我了解,这些初始化程序的唯一要点是方便。有时会发生这种情况,我们经常需要一遍又一遍地创建具有相同参数的对象。在那种情况下,我们可以只添加另一个init方法,它接受的参数少得多,其余的参数是硬编码的。比如一些Logger类init(typ

ios - 在调用可失败初始化器的子类上创建便利初始化器

尝试了以下推导的许多变体,但没有奏效。importFoundationimportSceneKitclasstest:SCNScene{overrideinit(){super.init()}requiredinit(coderaDecoder:NSCoder){super.init(coder:aDecoder)}convenienceinit?(i:UIViewController){self.init(named:"")//CompileError:useofselfdelegatinginitializerbeforeself.initiscalled}}根据Swiftdocu

swift - 具有非可选属性的便利初始值设定项

我的一个对象有一个整数ID。由于这是一个必需的属性,我没有将它定义为一个可选的,而是在指定的初始化程序中需要它:classThing{varuniqueID:Intvarname:String?init(uniqueID:Int){self.uniqueID=uniqueID}}因为我是从一些JSON创建其中一个,所以用法是这样的:ifletuniqueID=dictionary["id"]as?Int{letthing=Thing(uniqueID:unique)}接下来,我希望能够向接受字典对象并相应地设置属性的Thing类添加一个便利的初始值设定项。这包括必需的uniqueID和

swift - 在 Swift 中,如何为 init 的实现创建类值而不是调用现有 init 的类创建便利的 init

我觉得答案很明显,但我一直无法弄清楚,这对我来说似乎是一个反复出现的问题。基本上我想做这样的事情:extensionNSData{convenienceinit(JSONObject:AnyObject){do{self=tryNSJSONSerialization.dataWithJSONObject(JSONObject,options:[])}catch{self=nil}}}但是它不会让我简单地为self赋值。我一直用枚举来做这件事,但它不允许我用类来做。有没有什么方法可以使用在初始化器实现中创建的类的实例来实现方便的初始化器? 最佳答案

ios - 自定义 UIView 初始化程序的便利初始化程序必须使用 self.init 错误进行委托(delegate)

我正在尝试为UIView创建自定义初始化方法,如下所示:convenienceinit(frame:CGRect,tutorProfileImageURL:String?){self.tutorProfileImageURL=tutorProfileImageURLsuper.init(frame:frame)}overrideinit(frame:CGRect){super.init(frame:frame)setup()}requiredinit?(coderaDecoder:NSCoder){super.init(coder:aDecoder)setup()}funcsetup(