Swift Runtime探索,Error定义使用

Swift Runtime探索,Error定义使用

我们⽤下⾯这段代码来测试⼀下:

class LGTeacher { 
 var age: Int = 18 
 func teach(){ 
   print("teach") 
 }  
} 
 let t = LGTeacher() 
 func test(){ 
     var methodCount:UInt32 = 0 
     let methodlist = class_copyMethodList(LGTeacher.self, &method Count) 
     for i in 0..<numericCast(methodCount) { 
         if let method = methodlist?[i]{ 
             let methodName = method_getName(method); 
             print("⽅法列表:\(String(describing: methodName))") 
         }else{ 
             print("not found method"); 
         } 
     } 
     var count:UInt32 = 0 
     let proList = class_copyPropertyList(LGTeacher.self, &count) 
     for i in 0..<numericCast(count) {
         if let property = proList?[i]{
             let propertyName = property_getName(property);
             print("属性成员属性:\(String(utf8String: propertyName)! )")
         }else{
             print("没有找到你要的属性"); 
         } 
     } 
 }

运⾏这段代码你会发现,当前不管是我们的⽅法列表还是我们的属性列表,此次此刻都是为空的。

 @objc 的标识,如果这个时候我们将我们当前的⽅法和属性添加上,会发⽣什么?

此刻代码会输出我们当前的 teach ⽅法和 age 属性。但是此刻对于我们的 OC 来说是没有办法使⽤的:
 
 
所以这⾥我们得出来这样⼀个结论&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值