ICode9

精准搜索请尝试: 精确搜索
  • metal docs--Synchronization&memory management2019-06-26 18:41:49

    https://developer.apple.com/documentation/metal/heaps/image_filter_graph_with_heaps_and_fences?language=objc https://developer.apple.com/documentation/metal/reducing_the_memory_footprint_of_metal_apps?language=objc https://developer.apple.com/documentatio

  • objc runtime 动态增加属性2019-06-13 13:47:51

    为什么80%的码农都做不了架构师?>>>    objective-c中,有类别可以在不修改源码的基础上增加方法 使用运行时库,必须要先引入 objc/runtime.h 可以使用的函数如下: OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_Associatio

  • dynamic的作用2019-06-09 16:03:05

    由于swift是一门静态语言,所以没有Objective-C中的消息发送这些动态机制,dynamic的作用就是让swift代码也能有oc中的动态机制,常用的就是KVO。 使用dynamic关键字标记属性,使属性启用Objc的动态转发功能; dynamic只用于类,不能用于结构体和枚举,因为它们没有继承机制,而Objc的动态转发就是

  • Objective-C 消息发送与转发机制原理(摘)2019-05-29 19:38:04

    八面玲珑的 objc_msgSend 此函数是消息发送必经之路,但只要一提 objc_msgSend,都会说它的伪代码如下或类似的逻辑,反正就是获取 IMP 并调用: id objc_msgSend(id self, SEL _cmd, ...) { Class class = object_getClass(self); IMP imp = class_getMethodImplementation(class, _cmd

  • 多线程七:线程同步 - @synchronized2019-04-23 15:55:18

    一、定义 @synchronized是对mutex递归锁的封装 @synchronized(obj)内部会生成obj对应的递归锁,然后进行加锁、解锁操作 @synchronized 没有智能提示,因为苹果不推荐使用。 注: 源码查看:objc4中的objc-sync.mm文件 二、断点看 底层 @synchronized([self class]) { // objc_s

  • swift的@objc总结2019-03-26 19:38:27

    One can explicitly write @objc on any Swift declaration that can be expressed in Objective-C.  @objc相关的参量只能修饰类、类的成员、扩展以及只能被类实现的协议; 下面开列修饰的情况和说明   一、无修饰 NSObject-derived classes no longer infer @objc   A declarati

  • 关于@synchronized 比你想知道的还多2019-03-21 08:47:58

    如果你曾经使用Objective-C做过并发编程,那你肯定见过@synchronized这个结构。@synchronized这个结构发挥了和锁一样的作用:它避免了多个线程同时执行同一段代码。和使用NSLock进行创建锁、加锁、解锁相比,在某些情况下@synchronized会更方便、更易读。 如果你从来没有使用过@synchron

  • swift class的虚函数表、扩展、@objc修饰的研究2019-03-19 19:39:53

    swift class的虚函数表、扩展、@objc修饰的研究   工具: swiftc -emit-sil BaseClass.swift | xcrun swift-demangle > ClassFunc.silgen cat ClassFunc.silgen   目标: 1、@objc和@objc dynamic修饰的函数是否进入虚函数表; 2、虚函数的的派发机制是什么? 3、extension中的缺省修饰

  • @objc vs @objc dynamic官方解释2019-03-04 18:49:51

    Some Objective-C APIs—like target-action—accept method or property names as parameters, then use those names to dynamically call or access the methods or properties. In Swift, you use the #selector and #keyPath expressions to represent those method or pro

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有