草庐IT

nested-generics

全部标签

iOS- swift : How to write generic function for this case?

我在我的应用程序中使用CoreData。数据库中有4个表:User、Medicine、Schedule和Patient。对于每个表,我需要编写一个添加函数来将数据添加到数据库中,如下所示:funcaddUser(email:String,password:NSData,handler:@escaping(_status:SaveStatus,_error:NSError?)->Void){letmanagedContext=(UIApplication.shared.delegateas?AppDelegate)?.managedObjectContextletentity=NSEnt

generics - 在 Swift 中扩展泛型?

这个问题在这里已经有了答案:HowcanIextendtypedArraysinSwift?(11个答案)关闭8年前。我正在尝试扩展Array在Swift中添加一个调用self.append的函数.问题是Swift似乎不允许我这样做-当我尝试以下代码时:extensionArray{mutatingfuncAppendObj(obj:T){//...self.append(obj);}}它说“T”不可转换为“T”,我假设这意味着底层数组使用的“T”可能与传递给AppendObj的T不同。.它也不允许我使用extensionArray(“使用未声明的类型T”)。是否可以在Swift中扩展

generics - Swift - 无法将 BST 节点转换为通用节点

当为具体类型实现时,我的二叉搜索树节点在Playground上运行良好:classNode{vardata:IntvarleftChild:Node?varrightChild:Node?init(data:Int){self.data=data}}letn=Node(data:42)//{data42nilnil}当我尝试使其通用时,Xcode崩溃并烧毁:classGenericNode{vardata:TvarleftChild:GenericNode?varrightChild:GenericNode?init(data:T){self.data=data}}letg=Gener

generics - 在 Swift 中实现封装(使用 SequenceType 等)的最佳实践?

tl;dr这是最好的tl;dr对于那些不想阅读较长解释的人,我可以提出建议。如果您没有使用过具有通用集合接口(interface)的静态类型语言,那么这个问题不适合您。所以这里是:因为我们无法创建SequenceType类型的属性在Swift中,如果我们想隐藏序列的底层类型,我们该怎么做呢?另外,我们如何为可变集合执行此操作?例如,这不起作用:classFrogBox{var_frogs=[Frog]()varfrogs:SequenceType{return_frogs}}那么如果我们想隐藏我们正在使用数组的事实,特别是因为我们不希望用户直接修改数组,我们该怎么办呢?详细解释在我职业

generics - 快速从通用数学类型返回 Int

提到了如何要求泛型在数学运算中可用here是什么让我想到了这个协议(protocol)protocolMathematicsProtocol:Equatable{init(_value:Int)init(_value:Float)init(_value:Double)func+(lhs:Self,rhs:Self)->Selffunc-(lhs:Self,rhs:Self)->Selffunc*(lhs:Self,rhs:Self)->Selffunc/(lhs:Self,rhs:Self)->Self}extensionInt:MathematicsProtocol{}extensi

ios - 以 "generic"方式将 NSManagedObject 转换为结构体 (Swift)

我有一个CoreDataStore类,它有两个通用占位符,可用于模型中的每个实体类型。这个想法是它从存储中获取一个NSManagedObject子类(基于一种泛型类型),将其转换为适当的对象(基于另一种泛型类型)并返回该对象。此行为的目的是为了保持核心数据方面的封装并避免在整个应用程序中传递NSManagedObject实例。潜在用途示例这纯粹是用法可能看起来如何进一步证明我正在努力实现的目标。letpersonStore=CoreDataStore()letpersonData=personStore.fetchSomeObject()//personDataisavaluetype

arrays - Swift 2D Array Generic Extension - 访问二维的问题

我正在尝试将以下函数转换为二维数组的通用扩展。funcrotate(_input:[[Int]])->[[Int]]{letlength=input[0].countvarvalue=Array(repeating:[Int](),count:length)forindexin0..我特别困惑如何指定约束以允许我访问第二个维度。这是一次失败的尝试:extensionArraywhereElement:Collection,Element.Iterator.Element:Collection{privatefuncrotate(){letcount=self[0].count//Ele

ios - 在 Swift 中初始化结构错误 : Generic parameter could not be inferred

我试图在不提供参数的情况下在类中声明一个结构。该结构将需要由函数初始化,但应该对整个类可见。通常,我可以执行varmyStruct:MyStruct?但这次它给我一个错误。无法推断通用参数“Type”我是否错误地初始化了结构?我是如何使用它的:classMyClass:{staticletsharedInstance=MyClass()privateoverrideinit(){}letmyStruct=MyStruct?//?//?()//?'withnoargumentsfuncrunFunction(A:Int,B:Int){myStruct(var1:A,var2:B)//我的

ios - 用户界面测试 : Slider fails to adjust when nested in Table View Cell

在Xcode9.0(9A235)上的UI测试中,当UISlider时,使用adjust(toNormalizedSliderPosition:)与UISlider交互根本不起作用嵌套在UITableViewCell中。我已经在许多不同的场景中进行了测试:-未嵌入UITableView的普通UISlider可与adjust方法一起正常工作。-与UITableView共存但不在TableViewCell中的UISlider继续与adjust配合使用-UITableView中的UISlider可以被唯一标识。-在UITableView中标识的UISlider可以响应像tap()这样的简单事件

ios - Swift Nested 尝试在闭包中

我有以下需求enumCustomError1:Error{caseerrorA}enumCustomError2:Error{caseerrorA}publicfuncfunc1(completion:@escaping()->Void)throws{//somecodeif#somecondition{throwCustomError1.errorA}completion()}publicfuncfunc2(completion:@escaping()->Void)throws{//somecodeif#somecondition{throwCustomError2.errorA}c