12 2020 档案

摘要:对于LBPerson类,代码如下 @interface LBPerson : NSObject @property (nonatomic, copy) NSString *name; - (void)test; @end @implementation LBPerson - (void)test { 阅读全文
posted @ 2020-12-30 11:27 木子沉雨 阅读(148) 评论(0) 推荐(0)
摘要:写如下代码: BOOL flag1 = [[NSObject class] isKindOfClass:[NSObject class]]; BOOL flag2 = [[NSObject class] isMemberOfClass:[NSObject class]]; BOOL flag3 = 阅读全文
posted @ 2020-12-28 21:48 木子沉雨 阅读(131) 评论(0) 推荐(0)
摘要:对于下面的代码,打印的结果是啥 #import "LBStudent.h" @implementation LBStudent - (instancetype)init { self = [super init]; if (self) { NSLog(@"[self class] = %@", [s 阅读全文
posted @ 2020-12-28 21:25 木子沉雨 阅读(132) 评论(0) 推荐(0)
摘要:__block修饰符 __block可以用于解决block内部无法修改auto变量值的问题, __block不能修饰全局变量、静态变量 写下面的block代码: int main(int argc, const char * argv[]) { @autoreleasepool { __block 阅读全文
posted @ 2020-12-16 23:03 木子沉雨 阅读(401) 评论(0) 推荐(0)
摘要:block中对于变量的捕获分为三种: 值传递、指针传递和直接访问 值传递 block捕获的局部变量,用auto修饰的,auto一般省略 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autor 阅读全文
posted @ 2020-12-03 23:36 木子沉雨 阅读(329) 评论(0) 推荐(0)
摘要:写如下的block声明代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { void (^blockTest)(void) = ^{ NSLog(@"hah 阅读全文
posted @ 2020-12-03 17:41 木子沉雨 阅读(157) 评论(0) 推荐(0)
摘要:我在最新版的objc中找到initializeNonMetaClass,源码如下: void initializeNonMetaClass(Class cls) { ASSERT(!cls->isMetaClass()); Class supercls; bool reallyInitialize 阅读全文
posted @ 2020-12-01 23:06 木子沉雨 阅读(154) 评论(0) 推荐(0)
摘要:从objc苹果的源码中可以看到如下代码: load_images(const char *path __unused, const struct mach_header *mh) { if (!didInitialAttachCategories && didCallDyldNotifyRegist 阅读全文
posted @ 2020-12-01 22:29 木子沉雨 阅读(325) 评论(0) 推荐(0)