草庐IT

swift - 如何在 Swift 4 中使用 JSONEncoder 对字典进行编码

我想用JSONEncoder将字典编码为json。它看起来像一个请求,接收一个字典作为参数并将其编码为json作为http主体。代码如下所示:letdict=["name":"abcde"]protocolRequest{varparams:[String:Encodable]{getset}funcencode(_value:T)throws->DatawhereT:Encodable}extensionRequest{funcencode(_value:T)throws->DatawhereT:Encodable{returntryJSONEncoder().encode(valu

ios - 带参数的 Alamofire 图像上传和带补丁方法的 AuthToken header

这里是我使用的alamofire代码params是一个字典[String:Any]Alamofire.upload(multipartFormData:{MultipartFormDatainfor(key,value)inparams{ifletimage=valueas?UIImage{ifletimageData=UIImageJPEGRepresentation(image,0.2){MultipartFormData.append(imageData,withName:"image",fileName:"file.jpg",mimeType:"image/jpg")}}els

swift - 如何在单个函数中执行两个完成 block 并将完成 block 的数据传递给下一个 View Controller ?

这是我的数据库结构:我正在使用一个带闭包的函数,执行两个完成block并将数据存储在两个单独的数组中。获得数据后,我想将数据传递到下一个ViewController到不同的变量中,但我得到的是两个数组的相同值。@IBActionfuncGoToAnswerPage(_sender:Any){self.getData(refe:JoinCodeTextField.text!){(array)inself.performSegue(withIdentifier:"JoinToAnswerPage",sender:array)}}funcgetData(refe:String,complet

macos - swift 错误 : Cannot assign to immutable value

此代码段出现上述错误:funcstore(name:String,inoutarray:[AnyObject]){forobjectinarray{ifobjectis[AnyObject]{store(name,&object)return}}array.append(name)}有什么想法吗? 最佳答案 用for提取的项目object是不可变的。您应该改为迭代数组的indices。并且,该项目是AnyObject,您不能在不强制转换的情况下将其传递给inoutarray:[AnyObject]参数。在这种情况下,您应该将其转换为

ios - Swift 在 Optional() 中获取值(value)

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭6年前。Improvethisquestion当我从我正在访问的API中获取返回值时,当我打印数据时,它显示为Optional((jknjknjkn))例如。我使用选择器在返回数据时运行方法funcresult(data:AnyObject){println(data["info"])}打印出来的就是上面的Optional的东西。如果没有Opt

ios - swift 错误 : Value of type 'NSObject -> () ' AnimalListTableViewController' has no member 'tableView'

我正试图在swiftxcode中消除这些错误如果截图太小,这里是代码importUIKitclassAnimalListTableViewController:UITableViewController{overridefunctableView(tableView:UITableView,numberOfRowsInSectionsection:Int)->Int{return4}letindexPath=self.tableView.indexPathForSelectedRow()//thisiswheretheerrorappears,itsaysValueoftype'NSO

swift 2 : Cannot convert value of type '[NSObject : AnyObject]' to expected argument type '[String : AnyObject]'

我有一个用Swift1构建的项目。但是在自动转换为Swift2后,它显示错误:无法将类型'[NSObject:AnyObject]'的值转换为预期的参数类型'[String:AnyObject]'。函数代码:funccreateViewContainers()->NSDictionary{varcontainersDict=NSMutableDictionary()letitemsCount:Int=tabBar.items!.countasInt-1forindexin0...itemsCount{varviewContainer=createViewContainer()conta

swift - 为通用结构提供专门的初始化器

我定义了一个简单的通用结构——它唯一的要求是它存储的属性是Comparable:structBounds{letlower:Aletupper:A}但是,我想为该结构提供几个专门的初始化程序,它们将使用一些数学运算来设置属性。init(value:Double,tolerance:Percentage){self.lower=value*(1-tolerance)self.upper=value*(1+tolerance)}init(value:Measurement,tolerance:Percentage){self.lower=value.value*(1-tolerance)s

ios - swift 错误 : Could not cast value of type 'NSTaggedPointerString' (0x1a1264378) to 'NSNumber' (0x1a126f900)

我在Xcode(swift)中遇到这个错误:Couldnotcastvalueoftype'NSTaggedPointerString'(0x1a1264378)to'NSNumber'(0x1a126f900).我用//ERROR:("...")明确了错误在哪里代码:importUIKitimportiAdimportAVFoundationimportAudioToolboxletMAX:UInt32=4letMIN:UInt32=1classViewController:UIViewController,ADBannerViewDelegate{varchances=10varw

Swift:如果让冗余

我刚刚加入了一个包含大量现有代码的项目。之前的程序员可能对Swift不熟悉,或者在Swift语言的早期阶段就开始开发。他们似乎以一种奇怪的方式使用了iflet语句。他们似乎想将该语句用作ifislet。在我编辑代码之前,我想知道这是否有任何有效用途://InJSONparserifvalueisString,letstring=valueas?String{document.createdBy=string}首先检查值是否属于String类型对我来说似乎是多余的。Swift不会在letstring=valueas中检查这个吗?语句的字符串部分?问题为什么需要检查两次?或者会有这样的原因