12 2020 档案
摘要:对于LBPerson类,代码如下 @interface LBPerson : NSObject @property (nonatomic, copy) NSString *name; - (void)test; @end @implementation LBPerson - (void)test {
阅读全文
摘要:写如下代码: BOOL flag1 = [[NSObject class] isKindOfClass:[NSObject class]]; BOOL flag2 = [[NSObject class] isMemberOfClass:[NSObject class]]; BOOL flag3 =
阅读全文
摘要:对于下面的代码,打印的结果是啥 #import "LBStudent.h" @implementation LBStudent - (instancetype)init { self = [super init]; if (self) { NSLog(@"[self class] = %@", [s
阅读全文
摘要:__block修饰符 __block可以用于解决block内部无法修改auto变量值的问题, __block不能修饰全局变量、静态变量 写下面的block代码: int main(int argc, const char * argv[]) { @autoreleasepool { __block
阅读全文
摘要:block中对于变量的捕获分为三种: 值传递、指针传递和直接访问 值传递 block捕获的局部变量,用auto修饰的,auto一般省略 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autor
阅读全文
摘要:写如下的block声明代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { void (^blockTest)(void) = ^{ NSLog(@"hah
阅读全文
摘要:我在最新版的objc中找到initializeNonMetaClass,源码如下: void initializeNonMetaClass(Class cls) { ASSERT(!cls->isMetaClass()); Class supercls; bool reallyInitialize
阅读全文
摘要:从objc苹果的源码中可以看到如下代码: load_images(const char *path __unused, const struct mach_header *mh) { if (!didInitialAttachCategories && didCallDyldNotifyRegist
阅读全文
浙公网安备 33010602011771号