草庐IT

generic-constraints

全部标签

iOS 10 : NSInvalidLayoutConstraintException: Constraint improperly relates anchors of incompatible types

更新到iOS10后,我在我的一个应用程序上遇到了一堆错误NSInvalidLayoutConstraintException:Constraintimproperlyrelatesanchorsofincompatibletypes:我以前在使用这样的约束时从未遇到过问题,而且我只在我的iOS10设备上遇到过它。有什么想法吗? 最佳答案 你可能正在做这样的事情:NSLayoutConstraint(item:viewA,attribute:.leading,relatedBy:.equal,toItem:parentView,att

generics - Swift 中的通用字典值类型

我正在尝试创建一个字典变量,其值是两种类型之一。我尝试的一个例子应该使这一点更清楚:varobjects:[String:T]这会抛出一个编译器错误,只有句法函数类型可以是通用的。我想知道这是否可能,我只是不知道正确的语法? 最佳答案 为此,您需要的工具是具有关联数据的枚举。enumStuff{caseFloatyThing(Float)caseBoolyThing(Bool)}letobjects=["yes!":Stuff.BoolyThing(true),"number":Stuff.FloatyThing(1.0)]这会捕获

generics - Swift 通用对象/JSON 序列化

tl;博士您能否使用符合协议(protocol)的初始化方法一般地实例化一个对象,同时仍然保留该对象的预期类型?我现在正在尝试的是seg错误编译器。在我正在编写的库中,我试图使用Swift有限的自省(introspection)功能来实现对对象进行一般序列化/反序列化的目标。这是使用反射设置变量值的全局函数的代码。如果找到字典,它会尝试协调嵌套结构:funcmodel__setValue(value:AnyObject,forSerializationKeykey:String,modelm:T){letvarNames=object__getVarNames(mirror:refle

generics - 在 Swift 泛型中强制父类(super class)

我试图实现一种新方法来连接两个Array,返回一个包含通用数据类型的Array给其他两个。为了清楚起见,我希望有一种方法可以做类似的事情(知道语法不正确......):@infixfunc+(left:Array,right:Array)->Array{//joinbotharrays}总是认为编译器能够检测两个类的共同祖先类型。如果这实际上是不可能的,那么正确的方法是什么?使“super”类型显式化? 最佳答案 Swift的类型推断比您想象的要聪明。秘诀是查看nil-coalescing运算符的签名??:func??(option

swift - <T : Any> and no constraint <T> 的通用约束有什么区别

我见过一些使用约束的代码,例如并且无法在文档中找到它与未指定约束之间的区别。有什么区别吗,比如限制为非可选值? 最佳答案 约束确实是多余的,因为所有类型都是Any的子类型(包括Optional)。在内部,编译器实际上对类型Any进行建模作为协议(protocol)组合类型(例如P1&P2)由零协议(protocol)组成。没有办法用语言拼写这个,这就是为什么Any不再在标准库中定义1,它只是一个被解析为类型的关键字。所以约束T:Any从字面上解释为“T必须符合此空协议(protocol)列表中的所有协议(protocol)”,这显然

generics - Swift 要求两个泛型是同一类型

在Swift编程语言中我看到了一个例子funcanyCommonElements(lhs:T,rhs:U)->Bool{forlhsIteminlhs{forrhsIteminrhs{iflhsItem==rhsItem{returntrue}}}returnfalse}似乎T.GeneratorType.Element==U.GeneratorType.Element意味着分解序列时生成的元素共享相同的基础类型。所以我可以做anyCommonElements("123","1234")anyCommonElements([1,2,3],[1])但不是anyCommonElements

generics - Swift 语言中具有自定义对象的通用类型

我想知道是否有任何方法可以在以下泛型函数中使用==运算符比较两个泛型类型实例:funccompare(Ta,Tb)->Bool{ifa==b{//dosomethingreturntrue;}else{//doanotherthingreturnfalse;}}这是我的自定义对象:classMyObj{varid=3varname:String?} 最佳答案 来自Apple开发者资源,NoteverytypeinSwiftcanbecomparedwiththeequaltooperator(==).Ifyoucreateyouro

generics - 了解快速泛型与将参数视为协议(protocol)或基本类型

有人可以帮助我了解使用泛型比仅使用基类或协议(protocol)的好处吗?也许我只需要多读几遍Swift指南,但泛型的概念就是不深入。考虑这个使用泛型的例子funcremoveObject(object:T,inoutfromArrayarray:[T]){varindex=find(array,object)array.removeAtIndex(index!)}为什么不这样写呢?//Aspointedout,thisdoesnotcompile.Iwasmore-socuriousastowhyfuncremoveObject(object:Equatable,inoutfromA

swift - 'Generic' 与 Swift 2.2 中的协议(protocol) 'Equatable' 的冗余一致性

我在编译时在Equatable中遇到错误。我想在列表中添加find或contains方法来检查值。下面是我的代码classGeneric:NSObject,Equatable,NSCoding//AmHavinganerror-Redundantconformanceof'Generic'toprotocol'Equatable'{vargenericCode:String?vargenericName:String?vargenericType:String?vargenericImageUrl:String?vargenericPhone:String?varorgName:Str

java - 如何在 Eclipse 中禁用警告 - 'Class is a raw type. References to generic type Class<T> should be parameterized'

当我编译第三方库时,会生成一些“应该参数化”的警告。我知道如何修复它们,但我不想这样做,所以我尝试禁用Eclipse中的所有警告/错误。但是,在禁用每个警告/错误后仍会生成警告。请帮忙。 最佳答案 您可以将@SuppressWarnings("rawtypes")添加到方法、语句或方法参数中以抑制此警告。例如,Eclipse插件中的一个常见插件是:@OverridepublicObjectgetAdapter(@SuppressWarnings("rawtypes")Classadapter)