草庐IT

any_cast

全部标签

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 - 错误 : Could not cast value of type NSKVONotifying_MKUserLocation to Park_View. AttractionAnnotation

使用此功能时:funcmapView(mapView:MKMapView!,viewForAnnotationannotation:MKAnnotation!)->MKAnnotationView!{letannotationView=AttractionAnnotationView(annotation:annotation,reuseIdentifier:"Attraction")annotationView.canShowCallout=truereturnannotationView}发生此错误:Couldnotcastvalueoftype'NSKVONotifying_MK

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 3 核心数据 - NSExpression forFunction : "sum:" throws error ("could not cast dictionary to Day")

我有日子和任务。一天有很多任务。每个任务都有一个名为“点数”的属性,我想总结当天任务的所有点数。我使用了下面的代码(在教程的核心数据一书中找到,swift2版本)并尝试为swift3修改它(我还添加了一个谓词,但这并不重要)。但是当我运行这段代码时,我得到了这个错误:Couldnotcastvalueoftype'NSKnownKeysDictionary1'(0x10d02d328)to'MyProject.Day'我做错了什么?//sumcurrentday'staskpointsletsumRequest:NSFetchRequest=Day.fetchRequest()sumR

swift - 开启 Any.Type

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