optional相关内容
如何将类型为(NSObject,AnyObject)的对象转换为类型 String ? 在下面方法的第一行结尾处, as String 导致编译器错误: '(NSObject,AnyObject)'不能转换为'String' Casting street to NSString 而不是 String 编译,但是我正在将 street 转换为 String ,因为
..
我在操场文件中有以下代码: 扩展字典{ func test (){ for self.keys { self [key] } } } var dict:[String:AnyObject?] = [ “test”:nil ] dict.test() pre> 我以后会将for-each循环中的行引用为输出,因为它是相关的。在这个特殊情况下,
..
(p)在编写新的快捷课程时,当(而不是)使用隐式解开的可选项而不是纯粹的可选项时,我仍然不能100%舒适。据我所知,如果你从来没有希望它的值为零,那么将它们指定为隐式解开(和可选)就可以了。如果它是零,这是一个特殊事件,应该导致运行时错误。 例如,这个简单的登录视图包含两个文本框成员变量: class SignInFieldView:UIView { var emailFiel
..
Swift文档说明了关于协议的以下内容: 只有使用@objc属性将协议标记为 时,才能检查协议一致性,如以上为HasArea协议。这个 属性表示协议应该暴露给Objective-C 代码,并在使用Swift和Cocoa和Objective-C中描述。如果您不与Objective-C进行互操作,即使 ,如果您想要检查 协议一致性,则需要使用@objc属性标记 协议。 还要注意
..
现在使用 Java 8 6个月以上,我对新的API更改感到非常满意。我仍然不信任的一个领域是何时使用可选。我似乎在想要使用它之间的任何地方可能是 null ,而且无处可寻。 似乎当我可以使用它时,会有很多情况,我永远不会确定它是否增加了益处(IE可读性/空值安全),或者只是造成额外的开销。 所以,我有几个例子,我对社区对可选是否添加的想法感兴趣效益。 1 - 作为方法返回类型的方
..
我刚刚更新到我的iOS项目的Xcode 8和Swift 3。现在给我的应用程序的问题。而不是给我正确的日期和时间元素,我的标签显示“可选(2016)/可选(09)/可选(15)”而不是“2016/09/15”。自从更新以来,我没有更改任何代码,以前是正确的。这是我使用的: let date = Date() let calendar = Calendar.current let co
..
我有一个 UITableViewController 通过 NSFetchedResultsController 从Core Data加载它的条目。像这样: let historyItem = fetchedResults.objectAtIndexPath(indexPath)as HistoryItem historyItem 有一个 title this:
..
我写了以下代码: void Test(A a){ B b = new B (a.getName()); } 因此, B 期望一个 String 。它如下所示: protected B(String name){ super(name,KIND); this.name = name; } 但 a.getName()给我一个名称,可选
..
我在Playground做这个,但我没有得到任何错误。我不重新创建常量 range ?它发生在两个不同的范围?在背景中发生了什么使这个不是错误? if let range = add1.rangeOfString (“,”){ print(add1.substringToIndex(range.startIndex)) print(range) } 如果let range = a
..
如何在一些函数或子函数声明一个可选的颜色参数,就像我这样做的正常方式(我的意思是给一些默认颜色的可选参数),因为vb.net编译器抱怨有一些错误。如何解决此问题。 以下示例代码: 公共共享函数SomeFunction(ByVal iParam As Integer,Optional ByVal oColor As Color = Color。黑色) 结束函数 编译器不接
..
如何将包含一个或零个元素的列表正确转换为可选? 丑陋的代码: List integers = new ArrayList(); 可选 optional = integers.size()== 0? Optional.empty(): Optional.of(integers.get(0)); 解决方案 您可以使用
..
更新 - 在Swift中的可选和可选类型 之间没有区别 - 它们是一样的。 在Swift中,他们引入了 Type?构造,创建一个可选类型,强制程序员检查该值是否真的存在。 / p> 此外,在Swift中没有异常处理。 但是有一个内置的可选性机制。 此可选功能?只是一个可选 c> 我想知道是否有任何传递错误的方法信息通过可选类型。 可以通过可选类型 Int?返回
..
我有一个名为Field的自定义对象。我基本上使用它来定义表单中的单个字段。 类字段{ var name :String var value:Any? // initializers here ... } 用户提交表单,我验证每个 Field 对象,以确保它们包含有效的值。一些字段不是必需的,所以我有时刻意将 nil 设置为 value 属性:
..
从 Apple的文档: 您可以使用 if 和 let 在一起使用可能缺少的值。这些值表示为可选。可选值包含一个值或包含 nil 以指示该值缺失。在值的类型后面写一个问号(?)以将该值标记为可选。 为什么要使用可选值? 解决方案 Swift中的可选项是一个变量保持值或无值。可选项是通过在类型中添加?来编写的: var myOptionalString :串? =“Hell
..
我遇到了(绝对)一个我不太明白的功能。我有一个闭包,它接受 Float 并且没有返回值,aka (number:Float) - > Void 。在闭包中,我执行可选值的调用,而不是强制它的解开,因为我喜欢的行为,因为可选是一个委托(=如果它是nil,不做任何事情)。 但是当我这样做时,会得到一个错误: 无法将表达式的类型“...”转换为类型Float。有趣的是,当我简单地添加 print
..
给定: typealias Action =() - > () var action:Action = {} func doStuff(stuff:String,completion:@escaping Action){ print(stuff) action = completion completion() } func doStuffAgain(){
..
我创建一个脚本( MSScript s)的双向链表,它们应该有自己的 run()实现,当他们准备好时,他们调用下一个脚本( rscript )。我想创建的一个脚本只是一个延迟。它看起来像这样: class DelayScript:MSScript { var delay = 0.0 override func run(){ let delay = self.delay * Do
..
我理解“@objc”属性对协议的作用。我不明白是为什么它被添加到类,如下面的例子: @objc protocol CounterDataSource { optional func incrementForCount(count:Int) - > int 可选var fixedIncrement:Int {get} } @objc类计数器{ var count = 0
..
我不是在寻找正确答案,但为什么会发生这种情况。 这是代码: func isInt(param:AnyObject?){ 如果let value = param as? int { print(value) } else { print(“Not Int”) } 如果let value = param { 如果值为Int { print(value) } else { p
..
我遇到了一个我无法理解的编译时错误。我尝试在我的代码中使用 boost :: optional ,并且一旦我包括 boost / optional.hpp I不能再建立我的项目了。如果我评论这个包括语句出来,它的工作原理。我甚至没有任何实际使用 boost :: optional 在我的代码中,只是类头中的include语句(见下面的完整标题)。编译器错误是 C2143语法错误:在另一个Boost
..