`
wfkbyni
  • 浏览: 87045 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

weakSelf

阅读更多

快速的定义一个weakSelf 当然是用于block里面啦

#define WS(weakSelf)  __weak __typeof(&*self)weakSelf = self;
分享到:
评论

相关推荐

    iOS开发技巧之WeakSelf宏的进化详解

    本文将详细介绍一个方便的`WeakSelf`宏的进化过程,以及如何在开发过程中更高效地使用它。 首先,原始的方式是在Block内部声明一个`__weak`的`self`副本: ```objc __weak typeof(self) weakSelf = self; ``` ...

    一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用

    在iOS开发中,Block是一种强大的闭包特性,它允许我们将代码块当作对象处理。然而,使用Block时常常会遇到一个问题,即可能导致循环引用(retain cycle),进而引发内存泄漏。通常,我们通过使用`__weak`关键字来...

    ios-DLCalender.zip

    __weak typeof(self)weakSelf=self; _calendarView.calendarBlock = ^(NSInteger day, NSInteger month, NSInteger year){ NSString *dateString=[NSString stringWithFormat:@"%lu-%lu-%lu",year,month,day...

    iOS 获取系统通讯录的名字和电话【第二版】

    __weak typeof(self)weakSelf = self; //iOS >=iOS9 _objct10 = [[RXAddressiOS10 alloc] init]; _objct10.complete = ^(BOOL status, NSString * phoneNum, NSString * nameString) { if(status) { weakSelf...

    ios-datePickerView.zip

    __weak NextViewController * weakself=self; self.datePicker =[[[NSBundle mainBundle] loadNibNamed:@"DatePickerView" owner:self options:0] lastObject]; self.datePicker.frame =CGRectMake(0, self....

    ios-Swift TableView及上下拉刷新封装.zip

    weak var weakSelf = self // 弱引用 weakSelf!.register(type: .Class, name: "UITableViewCell") // 注册cell ID默认是传出的name ID 3.设置相关属性 weakSelf!.setTableView(isAllRefresh: true, type: .Default,...

    ios-封装UITableView下拉和上拉.zip

    __weak typeof(self)weakSelf = self; [self.tableView setLoadingBlock:^(BOOL pullDown) { [weakSelf requestData:!pullDown]; }]; //4.发起你的数据请求 //5.结束动画 [self.tableView reloadData]...

    block的循环引用导致的内存泄露的示例及解决办法

    if (weakSelf) { // 避免weakSelf为nil时Block执行 NSLog(@"%@", weakSelf.someProperty); } }; } ``` 2. 使用Block的copy方法:Block在ARC下默认为`__strong`,可以通过`__unsafe_unretained`或`__weak`修饰来...

    ios-tableView实现三级地市.zip

    代码简洁,几句话就可以实现。... weakSelf.valueLab.text = [NSString stringWithFormat:@"%@-%@-%@-%@", provice, city, area, code]; }; [self presentViewController:alertVc animated:YES completion:nil];

    掌握Objective-C中的弱引用:释放内存的优雅之舞

    __strong typeof(weakSelf) strongSelf = weakSelf; if (strongSelf) { // 使用 strongSelf 代替 self,避免循环引用 strongSelf.label.text = @"Weak Reference Example"; } }); } @end ``` 在这段代码中...

    OC-GCD异步线程下载图片

    在下载完成后,如果`weakSelf`仍然存在(即视图控制器尚未被释放),那么才会调用完成回调。 此外,实际的网络请求部分通常会使用NSURLSession或其更高级的API,如NSURLSessionDataTask,而不是模拟的`...

    ios-MGXWebBridge.zip

    __weak typeof(self) weakSelf = self; self.bridge.JSHander = ^id(NSString * _Nonnull funcName, NSArray * _Nonnull params) { NSLog(@"%@===%@",funcName,params); if ([funcName isEqualToString:@...

    内存管理面试题1

    3. Block循环引用:在block内部使用weakSelf,但需要注意weakSelf在block执行期间可能已释放的情况,这时可以使用强引用局部变量。 五、悬垂指针与野指针 1. 悬垂指针:指针指向的对象已被释放,但指针本身未被设置...

    ios-block循环引用的三种解决办法.zip

    __strong typeof(weakSelf) strongSelf = weakSelf; // 使用strongSelf执行相关操作 }; ``` 这里,weakSelf是self的弱引用,当Block试图访问self时,会先将其转换为强引用strongSelf。如果self已经被释放,...

    ios-仿qq未读消息的拖拽效果.zip

    __weak typeof(self) weakSelf = self; self.bubbleView.cleanMessageBlock = ^(BOOL isClean) { if (isClean) { weakSelf.messageSteper.value = 0; } else { // do other logical operation } }; 当...

    基于Object-C实现的列表选择课程作业项目.zip

    用法一 NSArray *optionList = @[@"北京", @"天津", @"山西", @"河北"]; NBLPickerView *pickerView = ...__weak typeof(self) weakSelf = self; pickerView.blockClickLeftButton = ^BOOL(NSInteger inde

    iOS开发中那些高效常用的宏 - 新风作浪的博客专栏 - 博客频道 - CSDN.NET1

    __strong typeof(weakSelf) strongSelf = weakSelf; // ... do something with strongSelf }; ``` 6. **类型检查宏**: 为了确保对象是特定类的实例,可以使用宏来执行类型检查,避免运行时错误。 ```cpp #...

Global site tag (gtag.js) - Google Analytics