草庐IT

arrays - 展平 [Any] 数组 Swift

使用this堆栈溢出问题我有以下代码。letnumbers=[1,[2,3]]as[Any]varflattened=numbers.flatMap{$0}print(flattened)//[1,[2,3]]我不想将flattened设置为[1,[2,3]][1,2,3]。在Swift中实现这一目标的最简单/最干净的方法是什么? 最佳答案 可能有更好的方法来解决这个问题,但一个解决方案是编写您自己的数组扩展:extensionArray{funcanyFlatten()->[Any]{varres=[Any]()forvalins

ios - 无法使用类型为 '[NSObject : Any]' 的索引下标类型为 'String' 的值

我在Internet上找到了不同的方法,但没有任何帮助。我是新人,我来帮你。我会收到消息:Cannotsubscriptavalueoftype'[NSObject:Any]'withanindexoftype'String'privatefuncimagePickerController(picker:UIImagePickerController,didFinishPickingMediaWithInfoinfo:[NSObject:Any]){letchosenImage=info[UIImagePickerControllerEditedImage]asUIImageletne

swift 2 : Is there any way to use 'default' in the switch statement of enum with associated values?

我有一个递归枚举,其中大多数情况具有相同类型的关联值:indirectenumLocation{caseTitle(String?)caseRegion(Location)caseArea(Location,Location)caseCity(Location,Location)caseSettlement(Location,Location)caseStreet(Location,Location)caseHouse(Location,Location)}我想做的是形成一个漂亮的字符串描述,其中将包括所有非零标题。funcgetStringFromLocation(location:

ios - Swift:将 Foo<String> 转换为 Foo<Any>

这是我的代码classFoo{}classMain{staticfunctest(){varfoo:Foovarbar=Foo()//DoallmystuffwithfoonecessitatingStringfoo=bar}}当我尝试分配foo=bar时我收到错误CannotassignavalueoftypeFootoavalueoftypeFoo.我不明白为什么会出现此错误,因为String符合Any。如果我做完全相同的事情但使用数组,我不会有任何错误staticfunctest(){varfoo:Arrayvarbar=Array()//Doallmystuffwithfoon

Swift 4 : Find value in nested, 动态字典 <String, Any> 递归

在给定的字典中,我需要找到给定键的嵌套字典([String:Any])。字典的一般结构(例如嵌套级别、值类型)是未知的并且是动态给定的。[1]在这个子词典中,有一个需要获取的键“值”(不要问)的给定值。这是一个例子:lettheDictionary:[String:Any]=["rootKey":["child1Key":"child1Value","child2Key":"child2Value","child3Key":["child3SubChild1Key":"child3SubChild1Value","child3SubChild2Key":["comment":"chil

ios - 类型 'Any' 在 Swift 3 Xcode 8 中没有下标成员

我正在尝试将我的项目转换为Swift3并不断收到此错误。除了这个错误,我已经修复了所有其他错误。我看到其他一些人遇到了问题,但我是JSON的新手,所以我不理解他们。任何帮助将不胜感激。这是我的代码:classfuncfetchPriceForSymbol(_symbol:String,completion:@escaping(_stock:StockPrice)->()){DispatchQueue.global(priority:DispatchQueue.GlobalQueuePriority.default).async{leturl=URL(string:"http://fin

ios - swift 设计模式。为什么他们包括 Any, AnyObject

我最近从常规objc转向了Swift。是的,我知道如何使用Any和AnyObject。但我很好奇为什么Apple决定使用AnyObject和Any。为什么好呢?它在解决什么问题?它节省了多少开发人员时间? 最佳答案 为了与现有的Cocoa库向后兼容。NSDictionary、NSArray等类不会对包含的所有对象强制类型。在Obj-C中还有id,它是指向任何Obj-C对象的指针。 关于ios-swift设计模式。为什么他们包括Any,AnyObject,我们在StackOverflow上

swift - 开启 Any.Type

我正在尝试快速打开一个类型。我不是要打开对象实例的类型,而是要打开实际类型本身。例如:lett:Any.Type=Int.selfswitcht{caseisInt:print("int")default:print("other")}我希望这会打印“int”,但它属于默认情况。我可以用if语句完成预期的结果,例如,ift==Int.self{print("tisanint")}但我希望有一种方法可以通过开关来做到这一点。我已经阅读了Apple的“TypeCasting”文档,可能不够彻底,因为我看不到在这里应用它的方法。 最佳答案

swift - 错误 : Extra parameter in request i used Swift 4. 为什么我必须传递类型为 [String : Any]? 的参数

Alamofire.request(APPURL.GetAccounts,method:.post,parameters:transactionData,encoding:JSONEncoding.default,headers:nil).responseJSON{responseDatain}我的问题是限制我只能通过[String:Any]类型的字典的原因是什么?完整代码:classfuncgetAccounts(transactionData:[String:Any]?,withCompletionHandler:@escaping(_response:AnyObject?)->(

arrays - 无法将任何数组类型传递给以 [Any] 作为参数的函数

我有一个[String]类型的数组letnames=["Joffrey","Cersei","Mountain","Hound"]我有一个接受[Any]类型数组的函数。funcprintItems(items:[Any]){foriteminitems{print(item)}}现在,当我以names作为参数调用函数时,printItems(names)我收到错误消息无法使用类型为“([String])”的参数列表调用“printItems”。Any只是所有类型都隐式遵守的协议(protocol)的typealias。想法? 最佳答案