草庐IT

internal_init

全部标签

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 - 使用所需的 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))它正在

ios - 类方法访问级别默认为 internal

通常你的类有很多方法。将所有这些的访问修饰符设置为私有(private)并保留一两个没有访问修饰符的做法很烦人。有没有办法让所有方法默认为私有(private)方法,而将访问修饰符赋予公共(public)方法?也许通过为类分配访问修饰符。 最佳答案 将所有私有(private)方法移动到同一文件中的扩展名并将其标记为fileprivate。classFoo{//publicstuff,storedpropertiesetc.}fileprivateextensionFoo{//privatemethods,computedprope

swift - 为什么我们可以在闭包的类型注释中使用 "internal argument labels",而它们(看起来)永远无法访问?

背景这自然是合法的:letclosure:(Int,Int)->()={print($0+$1)}closure(1,2)//3鉴于,自进化提案实现以来SE-0111:Removetypesystemsignificanceoffunctionargumentlabels在Swift3中,以下内容是不合法的:letclosure:(a:Int,b:Int)->()={/*...*/}Error:functiontypesmaynothaveargumentlabela,use_instead.这是预期的,正如SE-0111中的引述:Functiontypesmayonlybedefin

swift - 在 Swift 中使用 init 和 () 创建对象有什么区别

这个问题在这里已经有了答案:InSwift,what'sthedifferencebetweencallingUINavigationController()vsUINavigationController.init()?(3个答案)关闭5年前。classA{privatevarvalue:Intinit(value:Int){self.value=value}}我们有A类,我使用A.init(value:5)和A(value:5)创建这个对象有什么区别?谢谢

Swift Init 不符合预期类型 'Decoder'

目前,我有一个符合Codable的结构:publicstructPreference:Codable{publicletid:String}当我尝试使用以下方法初始化对象时:letpreference=Preference(id:"cool")我收到以下错误:Argumenttype'String'doesnotconformtoexpectedtype'Decoder'如何解决此问题并正确初始化结构? 最佳答案 在没有显式初始化器的情况下创建结构publicstructPreference{publicletid:String}它