美文网首页iOS开发技术分享iOS
做题系列之4---今天不做题

做题系列之4---今天不做题

作者: 08878f627e79 | 来源:发表于2016-04-01 13:53 被阅读50次

今天的主题是:

  • C语言指针的小知识点
  • 怎么证明meta class中保存的是类方法

一、 什么是指针数组、什么是数组指针、什么二级指针?

  • 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针
  • 数组指针:a pointer to an array,即指向数组的指针

举个具体栗子:

  • int* a[4] 指针数组 数组a中的元素都为int型指针
  • int (*a)[4] 数组指针 指向数组a的指针

那二级指针是什么捏。如下:

char *argv[3]={{"abcdefg"},{"1234567"},{"q1w2e3r"}};  
char **p = argv;  //二级指针

printf("*p=%s/n",*p);            //*p=abcdefg
printf("*(p+1)=%s/n",*(p+1));    //*(p+1)=1234567
printf("*(p+2)=%s/n",*(p+2));    //*(p+2)=q1w2e3r

由上可见,可以简单的把二级指针理解为指针数组。

二、 怎么证明meta class中保存的是类方法?

在objc-runtime-new.mm中有_read_images这个方法,我们来看一下(截取关键代码)

for (EACH_HEADER) {
        category_t **catlist = 
            _getObjc2CategoryList(hi, &count);
        for (i = 0; i < count; i++) {
            category_t *cat = catlist[i];
            Class cls = remapClass(cat->cls);

            bool classExists = NO;
            if (cat->instanceMethods ||  cat->protocols  
                ||  cat->instanceProperties) 
            {
                addUnattachedCategoryForClass(cat, cls, hi);
                if (cls->isRealized()) {
                    remethodizeClass(cls);
                    classExists = YES;
                }
            }

            if (cat->classMethods  ||  cat->protocols) 
            {
                addUnattachedCategoryForClass(cat, cls->ISA(), hi);
                if (cls->ISA()->isRealized()) {
                    remethodizeClass(cls->ISA());
                }
            }
        }
    }

这是加载category的代码,我们看到他区分了instanceMethods和classMethods。并且将classMethods加入了cls->ISA(),也就是meta class。

相关文章

  • 做题系列之4---今天不做题

    今天的主题是: C语言指针的小知识点 怎么证明meta class中保存的是类方法 一、 什么是指针数组、什么是数...

  • 做题做题做题

    今天没有什么新闻,做了一天的题,总算把微分方程边看答案边想解题思路的做完了,级数也做了一部分,主要是前面三段敛散性...

  • 晨读感悟:做题做题还是做题

    隧道视野

  • 每天都要坚持做题,做题,做题

    昨天算了算了,我每月可以收入8000元,还是很不错的。这样一年可以收入10万。要把学生带好,带得成绩极好,我的收入...

  • 2019-01-04

    离开,离开,离开,离开,离开。 做题,做题,做题,做题,做题。

  • 感恩日记D516

    2022.5.22 D513 做题 做题 做题 2022.5.23 做题 做题 焦虑又做题 2022.5.24 做...

  • 做题系列之5---category

    题:ClassA: NSObject+cate: 警告?报错?正常运行的输出老规矩,先看clang后的代码首先, ...

  • 2019-02-14

    做题做题做题。

  • 司考之做题

    刚才看了一眼手机上下载的APPs,瞥到了学法网,一瞬间突然明白自己为什么总是学不好司法考试了。 因为不爱做题。 抛...

  • 做题“套路”系列(一)

    写在前面:当你在无所依凭的情境中(比如考试时),当你在没有足够的知识积淀,当你没有足够多的诗词浸润,当你没有太多的...

网友评论

    本文标题:做题系列之4---今天不做题

    本文链接:https://www.haomeiwen.com/subject/gqnelttx.html