草庐IT

lets-encrypt

全部标签

swift - 我可以创建一个参与 "if let"的类以 Optional 的方式构造吗?

我可以使用iflet构造来解包可选值,如下所示:ifletx=someOptional{//xrepresentsthevalueofsomeOptional,andisknowntobenon-nil}除了解包之外,Swift编译器还知道将letx=someOptional构造视为逻辑值。Optional的逻辑是否内置于编译器本身,或者是否可以定义我自己的具有相同行为的类?换句话说,我可以这样写吗:classMyLogical:SomeProtocolForSwiftToKnowHowToTreatMyClassAsBool{...varboolValue:Bool{return..

ios - Swift: case foo (let bar): 没有类型或赋值?

在Swift中,我理解“let”定义了一个常量。没问题。所以“letfoo=42”和“letfoo:Int”是有道理的。但是我看到几个例子,其中简单地写了“letfoo”而没有赋值或类型说明。例如“casebar(letfoo):...”当“letfoo”本身出现在这样的代码中时究竟会发生什么? 最佳答案 此表示法用于绑定(bind)枚举的关联值。以此为例:letanOptionalInt:Int?=15switch(anOptionalInt){case.Some(letwrappedValue):print(wrappedVal

ios - Swift:使用 `var` 会导致编译器警告,使用 `let` 会导致编译器错误?

我已经定义了一个CanStack协议(protocol)和一个名为Item的关联类型:CanStack.swift//protocoldefinitionprotocolCanStack:ExpressibleByArrayLiteral,CustomStringConvertible{associatedtypeItemvaritems:[Item]{get}init()mutatingfuncpush(_items:[Item])mutatingfuncpop()->Item?}//protocolextension(defaultbehavior)extensionCanStac

objective-c - Swift 在 Objective C 中的 "if let"等价物

ObjectiveC中的“iflet”等价物是什么?下面是我要转换为ObjectiveC的示例片段;ifletpfobjects=imagesas?[PFObject]{ifpfobjects.count>0{varimageView:PFImageView=PFImageView()imageView.file=pfobjects[0]as!PFFileimageView.loadInBackground()}} 最佳答案 在Objective-C中没有直接等同于iflet,因为iflet做Swift特定的事情(解包可选和重新绑定

ios - swift : Encrypted input for UITextField for Card details

我想接受用户输入的卡详细信息。条件是前10个字符将被隐藏,而用户将被允许输入接下来的6个字符。我为此使用了四个文本字段(我的假设)。欢迎任何其他建议。问题1。如何让用户直接从第3个文本字段的第11个字符开始输入?对于到期日期字段,我使用了两个文本字段。问题2。如何使文本字段只有底部边框(没有左、右和上边框)? 最佳答案 问题1。如何让用户直接从第3个文本字段的第11个字符开始输入?A-1:txt3.becomeFirstResponder()问题2。如何使文本字段只有底部边框(没有左、右和上边框)?A-2:使用下面的代码行:func

ios - Swift if let 在 Optional(nil) 上评估成功

我有一个名为Field的自定义对象。我基本上用它来定义表单中的单个字段。classField{varname:Stringvarvalue:Any?//initializershere...}当用户提交表单时,我验证每个Field对象以确保它们包含有效值。有些字段不是必需的,所以我有时故意将nil设置为value属性,如下所示:field.value=nil当我使用if-let来确定字段是否为nil时,这似乎会造成问题。ifletvalue=field.value{//Thefieldhasavalue,ignoreit...}else{//Addfield.nametothemiss

swift - 为什么 guard let foo = foo 无效?

在Swift中,你可以使用ifletoptionalbinding来将一个optional解包为一个同名的常量或变量:functest(){leta:Int?=1ifleta=a{print("a=\(a)")}}对于iflet语句中的所有内容,可选的a都被展开为常规int。同样,我可以使用一个guard语句来实现类似的效果functest(){leta:Int?=1guardletrequiredA=aelse{return}print("a=\(requiredA)")}但是,我不能使用这样的代码:guardleta=aelse:functest(){leta:Int?=1guar

ios - 自定义运算符以简化 If-Let

我想简化常量需要做的事情ifletfirstName=firstName{self.name=firstName}执行此操作的可能的自定义通用运算符是infixoperator?={}func?=(inoutleft:T,right:T?){ifletright=right{left=right}}将前面的例子简化为self.name?=firstName这会产生一个问题,如果firstName的值为nil,则Swift会将值包装在一个可选值中。varname:String?="Bob"varfirstName:String?=nilself.name?=firstNameprint(

swift - 在 Struct 中使用 "let"- Swift

我目前正在练习SwiftLanguageiBook中的示例。我对“let”的理解是我们用“let”做一个常数。一旦我们给它赋值,我们就不能再给它赋另一个值。喜欢下面的代码:letcity="NY"city="LA"但是我在iBook上看到这个例子让我很困惑:structColor{letred=0.0,green=0.0,blue=0.0//在这个例子中,它已经为使用“let”的红色、绿色和蓝色赋值。为什么我们可以在init中再次给这三个变量赋值? 最佳答案 如果您不在构造函数中自行初始化,let中的初始化会提供默认值。构造函数(i

swift - 如何在 Xcode 6 调试器中查看 Swift "let"常量的值

当我在Xcode6的调试器中停止时,如何查看使用let声明的本地Swift常量的值?如果我在Xcode6中创建一个全新的Swift项目,并将以下两行添加到应用委托(delegate)中的application(_:didFinishLaunchingWithOptions:)中:letsomeConstant=5varsomeVariable=6...然后运行应用程序并在这些行之后立即中断,这是我在调试器的变量View中看到的:为什么变量显示它的值,而常量不显示?(为什么常量列出两次?)如果在LLDB控制台中,我在someConstant(所有都正确显示了someVariable的值)