我在使用Xcode6.3beta时遇到Parse/Swift的问题overridefunctableView(tableView:UITableView,cellForRowAtIndexPathindexPath:NSIndexPath,object:PFObject)->PFTableViewCell{varcell=tableView.dequeueReusableCellWithIdentifier("cell",forIndexPath:indexPath)as!secTableViewCellifcell==nil{cell=secTableViewCell(style:U
我认为varvalue:T=nil导致以下错误,因为XCode无法将nil值转换为通用类型T。classNode{varvalue:T=nilvarnext:Nodeinit(value:T){self.value=valueself.next=Node()}init(){self.next=Node()}}错误信息是Couldnotfindanoverloadfor'_coversion'thatacceptsthesuppliedarguments有没有办法在Swift中为变量分配nil值? 最佳答案 您需要将变量声明为可选:v
如何将NSData初始化为nil?因为后面在使用UIImageJPEGRepresentation之前需要检查这个数据是否为空类似的东西:ifdata==nil{data=UIImageJPEGRepresentation(image,1)}我试过data.length==0但不知道为什么,data.length不等于0而我还没有初始化。 最佳答案 您可以做的一件事是确保您的NSData属性是可选的。如果NSData对象尚未初始化,那么您可以执行ifnil检查。看起来像这样:vardata:NSData?=nilifdata==ni
在Swift中,NSJSONSerialization.JSONObjectWithData使用Optional()对于nullJSON中的值。是否可以告诉解析器使用nil相反(即,删除具有null值的字段,因为SwiftDictionary不允许nil值)? 最佳答案 Optional()是一个NSNull值。您可以避免这样的错误:if!(myFieldisNSNull){//WhateveryouwanttodowithmyFieldwhennotnull}else{//WhateveryouwanttodowhenmyFiel
对于某些视频,requestImageForAsset以nil的UIImage完成。对于其他视频,它工作正常,我还没有弄清楚为什么。funccreateThumbnailForVideo(video:PHAsset)->Future{letpromise=Promise()letoptions=PHImageRequestOptions()options.synchronous=trueimageManager.requestImageForAsset(video,targetSize:CGSizeMake(640,640),contentMode:.AspectFill,option
我是iOS开发的新手,而且速度很快。但到目前为止,我总是能够通过对stackoverflow的一些研究以及一些文档和教程来帮助自己。但是,有一个问题我还没有找到任何解决方案。我想从用户地址簿中获取一些数据(例如单值属性kABPersonFirstNameProperty)。因为.takeRetainedValue()如果此联系人在地址簿中没有firstName值,函数会抛出错误,我需要确保ABRecordCopyValue()函数确实返回一个值。我试着在闭包中检查这个:letcontactFirstName:String={if(ABRecordCopyValue(self.conta
在REPL(=Read-Eval-Print-Loop)中工作时,我在Swift语言中遇到了一些奇怪的行为,其中似乎有两种不同类型的nil值具有不同的行为在运行时:为此,我定义了一个函数g:funcg(x:String!){println("start!");println((x=="foo")?"foo":"not");}然后我定义了两个变量:varx:Stringvary:String!当我调用g(x)时,它的工作方式类似于Objective-C:start!not当我调用g(y)时,出现错误:start!fatalerror:Can'tunwrapOptional.NoneExe
StackOverflow上有很多与此错误相关的问题。我在howOptionalswork上阅读了一些优秀的帖子还有这个errorinparticular.但是,我还没有找到任何关于确定哪个值被设置为nil并首先导致错误的最佳方法的信息。有什么好的调试技术可以找出是哪个Optional导致了这个错误吗? 最佳答案 这里至少有一半的答案(请其他受访者先阅读问题!):使用模拟器而不是实际的iOS设备。调试器似乎非常擅长指出导致问题的受虐待的可选行......除非你像我一样,选择不时直接在iOS设备上运行代码。在后一种情况下,调试器将我置
AppledocumentationTN2151说这是EXC_BREAKPOINT/SIGTRAP的可能原因:anon-optionaltypewithanilvalue但是这样的代码无法编译:varx="hello"x=nil那么什么情况下非可选的可以获得nil值呢? 最佳答案 考虑在桥接到Swift的Objective-C中这样的东西:-(NSObject*_Nonnull)someObject{returnnil;}该函数被注释为_Nonnull,但将返回nil。这桥接为Swift的非可选对象,将会崩溃。
我想要一个延迟初始化的属性,如果我将该属性设置为nil,我可以再次调用其初始化器。如果我这样定义我的属性:lazyvarobject={/*initcode*/}()...然后调用该属性,初始化器被触发一次。但是,如果我稍后在我的程序中将object设置为nil,则不会再次调用初始化程序。我如何在Swift中做到这一点?我研究了计算属性,但它们实际上并不存储值,所以每当我调用变量时,计算或初始化总是发生。我只想在属性为nil时计算。 最佳答案 惰性属性初始化器负责在第一次以读取模式访问时初始化属性。设置为nil对初始化状态没有影响-