草庐IT

PROTOCOL_TLS

全部标签

objective-c - 从 Objective-C 协议(protocol)实例匹配 Swift 协议(protocol)

我正在寻找一种方法来动态匹配Objective-CProtocol实例与相应的Swift协议(protocol)。我在swift中定义了一个与Objective-C兼容的协议(protocol):@objc(YHMyProtocol)protocolMyProtocol{}我尝试在函数中执行匹配:publicfuncexistMatch(_meta:Protocol)->Bool{//NotworkingifmetaisMyProtocol{returntrue}//NotworkingalsoifmetaisMyProtocol.Protocol{returntrue}returnf

ios - 协议(protocol)实现协议(protocol)的默认实现

我正在尝试创建一个将由某些类实现的协议(protocol),所有这些类也应该实现UIScrollViewDelegate。我想到的是让我的新协议(protocol)实现协议(protocol)UIScrollViewDelegate。protocolMyProtocol:UIScrollViewDelegate{varmyVar:NSString{get}funcmyMethod()}由于该协议(protocol)应该有其默认实现,我还为此协议(protocol)创建了一个扩展。extensionMyProtocol{funcmyMethod(){print("I'mprinting"

属性符合协议(protocol)的 Swift 协议(protocol)扩展

我这样声明了一个协议(protocol)protocolJSONConnection{varrequest:NSURLRequest{getset}varsession:NSURLSession{getset}varjsonRootObject:JSONSerializable?{getset}}这里的JSONSerializable不是实际类型,它是我声明的另一个协议(protocol):protocolJSONSerializable{funcreadFromJSON(json:JSON)throws}所以,事实上,这个JSONConnection协议(protocol)需要一个名

swift - 协议(protocol)只能用作通用约束

我有一个MapViewController用于在map上显示注释。它包含一个MapPresentable类型的对象。protocolMapPresentable{associatedtypeAnnotationElement:MKAnnotationvarannotations:[AnnotationElement]{get}}classMapViewController:UIViewController{varmapPresentable:M!}如果mapPresentable符合RoutePresentable协议(protocol),MapViewController也可以在ma

swift - 扩展协议(protocol)以实现不同的行为

Swift问题,比如说你有一个协议(protocol)Bark:protocolMakeSound{funcbark()}一个父类(superclass)Dog,实现了吠叫和游泳:classDog:MakeSound{}然后是不同类型的狗:classPoodle:Dog{}classGermanShephard:Dog{}classSheepDog:Dog{}但是Poodle会狂吠,它们不会吠叫……所有的狗都会吠叫,只是它们的叫法不同……我如何赋予它们特定的吠叫行为?扩展协议(protocol)?...extensionMakeSound{funcbark()funcyapper()}

Swift 4 Conform Comparable 协议(protocol)和排序方法问题

我编写了符合Comparable协议(protocol)的Struct。structRecord:Comparable{staticfuncBool{iflhs.wins==rhs.wins{returnlhs.losses>rhs.losses}returnlhs.wins使用>[__lldb_expr_48.Record(wins:4,losses:7),__lldb_expr_48.Record(wins:3,losses:9),__lldb_expr_48.Record(wins:3,losses:8)]最高的胜利应该首先出现,其次是较少的胜利,但如果胜利相等,那么较少的损失应

swift - 是否存在确定类型应可使用字符串初始化的协议(protocol)?

我编写了以下代码来帮助将文本值从表单字段转换为预期值:protocolStringConvertableValueType{init?(_string:String)}extensionInt:StringConvertableValueType{}extensionString:StringConvertableValueType{}extensionDouble:StringConvertableValueType{}extensionFloat:StringConvertableValueType{}如您所见,所有这些原始类型本身已经支持相同的初始化程序。然而倾盆大雨docume

ios - 从基类或协议(protocol)继承的静态字段 - 如何?

我希望能够拥有具有静态属性(字段)的类,该属性是从基类继承或从协议(protocol)“混合”。每个类都应该有它自己的该属性的实现。可能吗?最好是不可变的。classC1{staticletstProperty="myprorepty1"}classC2{staticletstProperty="myprorepty2"} 最佳答案 这是可能的,但要让它在Swift中发挥作用真的很难。您打算如何引用此属性?让我们从一个super简单的实现开始:protocolSomeProtocol{staticvarprop:String{get

ios - 迭代弱引用数组,其中对象符合 Swift 中的协议(protocol)

我想将对象存储在一个数组中,其中对象是弱的,并且符合一个协议(protocol)。但是当我尝试循环它时,出现编译器错误:publicclassWeak{publicweakvarvalue:T?publicinit(value:T){self.value=value}}publicprotocolClassWithReloadFRC:class{funcreloadFRC()}publicvarobjectWithReloadFRC=[Weak]()forowrfrcinobjectWithReloadFRC{//IfIcommentthislinehere,itwillabletoc

glibc2.35-通过tls_dtor_list劫持exit执行流程

前言glibc2.35删除了malloc_hook、free_hook以及realloc_hook,通过劫持这三个hook函数执行system已经不可行了。传统堆漏洞利用是利用任意地址写改上上述几个hook从而执行system,在移除之后则需要找到同样只需要修改某个地址值并且能够造成程序流劫持的效果。__call_tls_dtors在程序返回时会通过exit函数,exit函数会经历以下调用过程exit->__run_exit_handlers->__call_tls_dtors而__call_tls_dtors函数中则存在着可以进行劫持的地址,__call_tls_dtors函数的执行如下:判