草庐IT

swift - Swift 中的可选赋值不起作用?

出于某种原因,我无法在Swift中使用可选项。它们似乎总是nil。要么某处有错误,要么我不明白可选值是如何工作的。这是我正在做的:首先,我打开一个SwiftREPL:/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift这是我在REPL中输入的内容(结合返回值):1>varperhapsInt:Int?perhapsInt:Int?=nil2>perhapsInt=13>ifletactualInt=perhapsInt{4.println("

swift - 我应该如何决定我的函数是应该返回可选的还是隐式解包的可选的?

如果我需要返回一些可以为nil的东西,我应该如何决定我的func应该返回可选的还是隐式解包的可选的?我见过任何一个版本的Swift方法,我很好奇是什么驱使决定返回一个可选的而不是从函数/方法中隐式解包的可选的,因为无论哪种方式,您似乎仍然需要在使用它之前检查非nil.例如,SpriteKit的SKNode大量使用隐式解包(部分版本如下)classSKNode:UIResponder,NSCopying,NSCoding{.../**Theparentofthenode.Ifthisisnilthenodehasnotbeenaddedtoanothergroupandisthusthe

swift - Array of String printing 可选,为什么?

我在Playground上玩数组,我有点困惑。这是代码:varplayers=["tob","cindy","mindy"]//["tob","cindy","mindy"]print(players.isEmpty)//FalsevarcurrentPlayer=players.first//"tob"print(currentPlayer)//"Optional("tob")\n"为什么说“可选”?我找到了解释:“first属性实际上返回一个可选值,因为如果数组为空,first将返回nil。”但它不是空的。.isEmpty//false,所以我不明白这一点。提前感谢您的帮助。

阿里云服务器4核8G配置可选实例规格及最新优惠价格表(2023最新)

阿里云4核8G服务器有十几种实例规格可选,其中计算型c7、通用算力型u1和计算优化型c7(国外地域)三种实例规格有优惠,其中计算型c7实例4核8G配置1M带宽优惠价格为3127.61元1年、5M带宽优惠价格为3862.01元1年;通用算力型u1实例4核8G配置1M带宽1367.86元1年、5M带宽优惠价格为1735.06元1年;计算优化型c7(国外地域)实例4核8G配置1M带宽5907.19元1年、5M带宽优惠价格为6771.19元1年,简书小编分享2023年截至目前阿里云服务器4核8G配置的最新可选实例规格和最新优惠价格。一、阿里云服务器4核8G配置可选实例规格阿里云ECS云服务器分为多种规

arrays - 将非可选数组转换为可选数组的简单方法

我希望将数组[T]分配给可选数组[T?]。这看起来应该很简单,但我想出的唯一解决方案是手动完成。structArrayHelper{functoArrayOfOptionals(input:[T])->[T?]{varresult=[T?]()forvalueininput{result.append(value)}returnresult}} 最佳答案 我不认为有任何内置的方法可以无缝地做到这一点,但map应该是一个更简单的解决方案:varinput=[T]()letoutput=input.map{Optional($0)}编辑

带有元素的数组上的 Swift flatMap 是可选的具有不同的行为

letarr:[Int?]=[1,2,3,4,nil]letarr1=arr.flatMap{nextinnext}//arr1:[1,2,3,4]letarr2:[Int?]=arr.flatMap{next->Int?innext}//arr2:[Optional(1),Optional(2),Optional(3),Optional(4)]我对这些代码感到困惑,为什么它们会有所不同?更新:请看这些代码,我letarr:[Int?]=[1,2,3,4,nil]letarr1:[Int?]=arr.flatMap{nextinnext}//arr1:[Optional(1),Opti

swift - 为什么我无法传递可选值 (?) 来获取图片网址?

self.imgView.sd_setImageWithURL(NSURL(string:dictData["image"]as?String))你好,我正在使用swift,我想从dictData获取图像URL,但是当我写下这一行时dictData["image"]作为?字符串它给出了这样的错误可选类型'String?'的值?未展开;你是不是想用'!'或'?'?当我点击错误时,它通过这个改进了我的代码行dictData["image"]作为!字符串为什么会这样?我想知道这背后的原因。 最佳答案 这意味着dictData["image

ios - 在展开可选值 keyboardWillShow 时意外发现 nil

我有下面这段代码,它在调用keyboardWillShowNotification时运行:funckeyboardWillShow(_notification:Notification){//ERRORINTHELINEBELOWkeyboard=(notification.userInfo?[UIKeyboardFrameEndUserInfoKey]asAnyObject).cgRectValueanimaton=(notification.userInfo?[UIKeyboardAnimationDurationUserInfoKey]asAnyObject).doubleVal

ios - 可选值上的 Swift KeyPath

如果我有classInfo{varname:String?}classUser{varinfo:Info?}classWrappedClass{varuser:User=User()}letnameKeyPath=\WrappedClass.user.info?.name//GetsmeKeyPathletreferencedNameKeyPath=\WrappedClass.user.info!.name//GetsmeReferenceWritableKeyPathnameKeyPath给我一个KeyPath以后我不能用它来修改名称值,但是如果我强制解包它我会得到一个Referen

swift - 为什么 Swift 不允许非可选类型的弱引用?

这不是纯粹的好奇,感觉我可能对Swift中的弱引用有一些误解。假设我从ViewController创建一个类并将其引用传递给初始化程序:class=MyClass(vc:self)由于Storyboard和窗口已经保留了对此ViewController的引用,因此MyClass对其进行弱引用似乎是合乎逻辑的(出于类似的原因,在IB中创建的所有引用默认情况下都是弱引用):classMyClass:NSObject{privateweakvarviewController:UIViewControllerinit(vc:UIViewController){self.viewControll