240 发简信
IP属地:重庆
  • AVAudioSession-Category的正确使用姿势

    最近,在开发一款音乐播放器类型项目中遇到的一些与AVAudioSession-Category设置的一些坑,以下是整个过程的一些经验总结。 1.常规播放 一般如果应用只有简单...

  • 120
    关于objc_designated_initializer介绍

    什么是NS_DESIGNATED_INITIALIZER NS_DESIGNATED_INITIALIZER是Xcode6后之后出现的一个黑魔法,通过它可以让我们充分发挥编译...

  • 120
    最新Reveal安装、使用和调试

    Reveal安装: 下载附件中的Reveal: Reveal4-8796 pwd: fjvc 将附件包里面的Reveal48796[Cr]中的Reveal.app, 直接拖拽...

  • - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
    {
    if (aSelector == @Selector(b)) {
    //貌似这里只需要返回一个不为空的签名都可以, 并且即使是下面的第二个返回签名的方式写对了, 也仅仅是anInvocation有值, 但是它对应的target和selector为空. 那么后面的forwardInvocation:中的anInvocation是怎么有target和selector的呢?

    return [NSMethodSignature signatureWithObjCTypes:[@"v@:@" UTF8String]];
    NSMethodSignature *signature = [[BB new] methodSignatureForSelector:@selector(b)];
    NSInvocation *anInvocation = [NSInvocation invocationWithMethodSignature:signature];

    return signature;
    }

    return [super methodSignatureForSelector:aSelector];
    }


    - (void)forwardInvocation:(NSInvocation *)anInvocation
    {
    //关于这里 好像也是只要BB的实例包含anInvocation中对应的selector就行了, 貌似和上面的签名方法没什么关系.
    [anInvocation invokeWithTarget:[BB new]]
    }

    能解释下吗? 写下来都懵逼了.😭

    runtime进行曲,objc_msgSend的前世今生(二)

    概要:傻瓜式讲解动态绑定和消息转发。学习进度: runtime小序曲,从运行时多态看这股神秘力量 runtime进行曲,objc_msgSend的前世今生(一) runtim...

  • 是不是MetaClass保存的是类相关的数据,如类方法列表之类的?

    runtime进行曲,objc_msgSend的前世今生(一)

    runtime小序曲一文中举出了runtime的三种应用方式: Objective-C源代码,以objc_msgSend方法举例。 NSObject的方法。 Runtime的...

  • 写得很不错, 很早之前看过runtime相关. 但是还是没能理解里面的原理.
    上面代码 [A class]和[A metaClass] 都是A这是为什么? 感觉MetaClass的名字跟类名一模一样, 应该是各自对应的结构体中的method_list不一样.

    runtime进行曲,objc_msgSend的前世今生(一)

    runtime小序曲一文中举出了runtime的三种应用方式: Objective-C源代码,以objc_msgSend方法举例。 NSObject的方法。 Runtime的...

  • 弄懂没有? 我发现都是翻译, 几乎没有关于后台实现的文章。 上面那句话我的第一感觉就是写反了。

    iOS开发之新版APNs搭建必备知识

    本文的大部分内容是对苹果关于APNs官方文档的翻译以及整理。 一、设备token和消息的生命周期 关于设备token以及推送消息的生命周期需要注意下面几点: Token会在i...