相关疑难解决方法(0)

如何在Objective-C宏中使用商业广告?

如何在Objective-C宏中使用商业广告?

我知道不推荐,但似乎有可能以某种方式?由于libextobjc提供@weakify,@strongify等...

c macros objective-c

7
推荐指数
1
解决办法
382
查看次数

了解@weakify宏

@weakify如何在幕后工作?使用@weakify(self)的想法是让它作为一个简写:

__weak __typeof__(self) weakSelf = self;
Run Code Online (Sandbox Code Playgroud)

注意:@weakify宏在这里定义.

我试图通过收集它使用的所有宏来了解它是如何工作的:

#define weakify(...) \
            ext_keywordify \
            metamacro_foreach_cxt(ext_weakify_,, __weak, __VA_ARGS__)

#define ext_weakify_(INDEX, CONTEXT, VAR) \
    CONTEXT __typeof__(VAR) metamacro_concat(VAR, _weak_) = (VAR);

#define metamacro_foreach_cxt(MACRO, SEP, CONTEXT, ...) \
        metamacro_concat(metamacro_foreach_cxt, metamacro_argcount(__VA_ARGS__))(MACRO, SEP, CONTEXT, __VA_ARGS__)

#define metamacro_argcount(...) \
        metamacro_at(20, __VA_ARGS__, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)


#define metamacro_concat(A, B) \
        metamacro_concat_(A, B)

#define metamacro_concat_(A, B) A ## B

#define metamacro_foreach_cxt1(MACRO, SEP, …
Run Code Online (Sandbox Code Playgroud)

macros memory-management weak-references objective-c automatic-ref-counting

3
推荐指数
1
解决办法
766
查看次数