草庐IT

default-lazy-init

全部标签

swift - Swift 中 init 属性的语法糖?

classPerson{varname:Stringvarage:Intfuncinit(age:Int,name:String,/**...**/){self.age=ageself.name=name//...muchtyping,muchboring.}}我可能有点懒惰,但明确输入每个属性感觉很像工作中的人类编译器。在Swift中为实例分配构造函数参数是否有任何语法糖? 最佳答案 查看DefaultInitializersSwift语言书籍的一部分。如果您要使Person成为结构而不是类,它会自动获得一个成员初始化:struc

swift - 检测是否有 init?在另一个初始化器中返回 nil

我有一个有两个初始化器的类,第一个类似于init?(){if.....{returnnil}//attributesinitialization}第二个是调用第一个的便利初始化器,但是我想检测第一个初始化器是否返回了nil,否则我不会继续我的代码。我试过类似下面的代码,但它对我不起作用。convenienceinit?(value:Int){ifletmyObject=self.init(){returnnil}self.value=value}我也尝试将它直接分配给一个变量,但看起来编译器不喜欢那样。有没有办法在不添加bool值作为属性的情况下检测它? 最

ios - 'required' initializer 'init(coder:)' 必须由 UIViewController 的子类提供

我知道还有其他类似的问题,但没有一个能回答我下面的问题。所以我有一个在XIB中定义了布局的ViewController。从另一个ViewController我想做这样的事情letdestVc=DestViewController(model:someModelData)self.showViewController(destVc,...)DestViewController定义如下:classDestViewController:UITableViewController{varmodel:SomeModelData{didSet{self.tableView.reloadData()

ios - 调试为什么 SKScene init(fileNamed :) returns nil

总长度:问题SKScene子类的init(fileNamed:)返回nil原因:.sks文件在第二次初始化调用时不存在。这个问题在某种程度上与ODR有关实现和/或行为。描述:一款使用SpriteKit构建的游戏。我的SKScene子类的init(fileNamed:)返回nil。我试图理解“为什么?”如何?”调试此问题。我的初始化SKScene子类的代码:///thehierarchy:SKScene->TBTBaseScene->TBTLevelSceneletsceneType:TBTBaseScene.Type=TBTLevelScene.selfletfileName="Lev

iOS Swift Firebase 存储错误 "No default Storage bucket found"

在尝试像这样设置对我的Firebase存储的引用时:letstorage=FIRStorage.storage()我看到以下错误:uncaughtexception'NSInvalidArgumentException',reason:'NodefaultStoragebucketfound.DidyouconfigureFirebaseStorageproperly?'据我所知,一切都已正确设置。我已经在Firebase上创建并链接了该应用我已经生成并添加了googleplist我已经用CocoaPods安装了库:pod'Firebase/Core'pod'Firebase/存储'我

ios - 使用所需的 init(nscoder) 时从代码设置物理体

我正在尝试利用init?(coderaDecoder:NSCoder)函数,以便我可以在我的sks文件中子类化Sprite。我可以在sks文件中设置物理体,但它不适用于我正在使用的也有圆角的矩形sprite。由于圆角,在使用init函数之前,我在代码中设置了physicsbody,并将宽度设置为略小于正方形的宽度(这样当我的英雄滑出正方形时,没有间隙圆角是..我知道我可以使用alphamaskphysicsbody来获得相同的效果,除了这个,当我的英雄在方block上时似乎有1px'ish的差距,而且看起来不太好。想知道为什么我不能这样设置物理体,以及我该如何做或绕过它?感谢您的帮助!

ios - `UTF16Index()` 或 `UTF16Index.init(encodedOffset:)` 用于 Xcode 8/9 支持

我所在的开发团队同时支持Xcode8和Xcode9。我正在开发一个在Xcode8中使用String.UTF16Index(range.location)的功能。当我升级到Xcode9时,导致错误'init'isdeprecated.所以在Xcode9中我将其更改为UTF16Index.init(encodedOffset:range.lowerBound)。但是,现在这在Xcode8中不起作用,出现错误Argumentlabels'(encodedOffset:)'donotmatchanyavailableoverloads。即使我可以检查Xcode版本并编写不同的代码,其中一行也会

ios - 在子类化的 UITableViewCell 中覆盖 init

我想在子类UITableViewCell中覆盖init(frame:CGRect)。overrideinit(frame:CGRect){super.init(frame:CGRect)}但这会引发错误:Initializerdoesnotovrrideadesignatedinitializerfromitssuperclass,我做错了什么? 最佳答案 对于UITableViewCell,您应该覆盖这个:overrideinit(style:UITableViewCellStyle,reuseIdentifier:String?

ios - Swift 中的 FlatMap 和 Init

结构我尝试重新创建ChrisEdihoff在dotSwift2016Demo中提供的演示中的代码。这是代码。structList{letname:Stringletid:Int}extensionList{init?(json:[String:AnyObject]){guardletname=json["name"]as?String,letid=json["id"]as?Intelse{returnnil}self.name=nameself.id=id}}letlistData=json["data"]as?[[String:AnyObject]]到目前为止一切似乎都很好。但这就是

swift 3 : NSURL to URL missing init?

我刚刚使用XCode8并让它转换我现有的项目。现在我遇到了没有参数的新URL没有初始化函数的错误。classfileObj:NSObject,NSCopying,Comparable{varURL=NSURL()//initial...新代码如下所示:classfileObj:NSObject,NSCopying,Comparable{varmyUrl=Foundation.URL()//initial...我应该如何初始化新的URL变量? 最佳答案 这样做绝对零意义,但目前(Swift3,Xcode8.0版(8A218a))它正在