草庐IT

ios - 为什么默认调用父类(super class)指定的初始值设定项?

这个问题在这里已经有了答案:Whydoesn'tSwiftforcemydesignatedinitializertocallsuper?(1个回答)关闭6年前。我是Swift的新手,遇到了一些关于初始化器的问题。我用以下代码创建了一个Swift文件:importFoundationclassSuperClass{vara:Intinit(){a=10print("InSuperclass")}}classSubClass:SuperClass{overrideinit(){print("InSubclass")}}在上面的代码中,SubClass的init()不包含对SuperCla

swift - 通用 [T.Generator.Element] 初始值设定项

我正在尝试学习Swift并研究Ch中的示例。1苹果的书。最后一个练习让我很头疼,我正在尝试构建一个函数,该函数返回作为参数传递的两个序列的公共(public)元素。这是我试过的代码:funcanyCommonElements(lhs:T,rhs:U)->[T.Generator.Element]{varresult:[T.Generator.Element]//howtodefault-initializeit?forlhsIteminlhs{forrhsIteminrhs{iflhsItem==rhsItem{result.append(lhsItem)}}}returnresult

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}}它可以工作

objective-c - 使用 NS_ENUM 的 rawValue 初始值设定项定义的枚举不会失败

我有一个Objective-C文件,其中的枚举定义如下:typedefNS_ENUM(NSInteger,State){State_ACTIVE=0,State_PENDING=1,State_CANCELED=2};在我的swift代码中,如果我执行letstate=State(rawValue:100),通常这应该返回nil,因为它是一个可失败的初始化程序。然而,当枚举被这样声明时(使用NS_ENUM),初始化成功,并且没有迹象表明这是一个无效的枚举值。这是Xcode中的错误,还是按预期工作? 最佳答案 这是预期的行为。对于桥接

swift - Swift 中 SKLabel 节点的指定初始值设定项是什么

我想知道在带有SpriteKit的Swift编程语言中,SKLabelNode的指定初始化器是什么? 最佳答案 init(fontNamed:)是指定的初始值设定项。便利初始化器有convenience关键字。 关于swift-Swift中SKLabel节点的指定初始值设定项是什么,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/28954743/

swift - 无法为类型调用初始值设定项...仅在为测试编译时

我有一个类有几个init方法,在添加一个新变量和一个新的init之后,只有在编译运行单元测试时我才开始收到以下错误(我可以编译并运行我的应用程序没有收到该错误):Overloadsfor'SearchedLocation'existwiththesepartiallymatchingparameterlists:(invocation:NSInvocation?),(selector:Selector),()我的类(class)是:classSearchedLocation:NSObject,MKAnnotation{letcoordinate:CLLocationCoordinate

swift - 颜色 rgb 初始值设定项在 SwiftUI 中不作为背景工作

我正在尝试将按钮的背景颜色设置为某个自定义rgb值。我按如下方式创建按钮:Button(action:{print("tapped")}){Text("Let'sgo")}.background(Color.black)这很好用,而且按钮的背景实际上是黑色的。但是,当像这样初始化背景颜色时,它不起作用,根本没有背景颜色:.background(Color(red:242,green:242,blue:242))这是为什么? 最佳答案 看起来它要求的是百分比颜色,我能够让它工作Color(red:242/255,green:242/2

ios - 了解 Swift 中的 UnicodeScalar 初始值设定项

如果我们接着查看结构UnicodeScalar,我们会看到这个初始化程序:init(_v:UInt32)但是你可以毫无问题地做到这一点:println(UnicodeScalar("a").value)它打印出:97但是如果你尝试这样做:leta:Character="a"//WithStringgaveerrortooprintln(UnicodeScalar(a).value)它给你一个关于UnicodeScalar结构初始化器的错误。我假设在第一种情况下它会在初始化程序中进行隐式转换或其他操作,但为什么不在第二种情况下呢?如何使用声明的变量避免第二种情况的错误?

Swift 创建不带自定义名称参数的自定义初始值设定项

我想为我的类创建init,它可能看起来像这样:initWithSomeMode{//Notcompilableself.init()self.customSetup()}当然上面的代码是行不通的,我只是想展示一下我想要达到的效果。我只能在Swift类中看到convenienceinit,但在那种情况下我需要添加参数,但我不需要它们。所以,我可能会像这样方便地实现这一点:convenienceinit(foo:String?){self.init()self.customSetup()}有什么方法可以创建不带参数的自定义init吗? 最佳答案

ios - 缺少闭包默认初始值设定项 - 快速闭包变量声明?

我在viewController类外声明了闭包,我在viewController类内创建了该闭包的一个变量,但它显示此闭包缺少默认初始化程序的错误。我理解变量和常量声明以及必须在声明时分配默认初始化的后果。但我无法理解我的闭包的默认初始化是什么,我尝试了一些技巧来解决它但没有成功。这是我的关闭声明typealiascompletionBlock=(String)->()这是我对该闭包的变量声明,它提示我对其进行初始化。classViewController:UIViewController{varcompletionHandler:completionBlock=//Whatcould