为什么我这个思路会报错
我在自己的test类里定义了一个+(void)的方法(已经在.h里注册),下面是test.m文件里的代码
@implementation test1 +(void)makenocenter{ [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(testno1) name:@"test1" object:nil]; } -(void)testno1{ NSLog(@"test1里的广播"); } -(void)dealloc{ [[NSNotificationCenter defaultCenter]removeObserver:self name:@"test1" object:nil]; }
然后再main里调用那个+(void)的方法来注册广播。下面是main里的代码
@autoreleasepool { // insert code here... NSLog(@"Hello, World!"); [test1 makenocenter]; [[NSNotificationCenter defaultCenter]postNotificationName:@"test1" object:nil]; }
然后在发送广播的时候出现错误,这是什么原因?因为addOberver:self里的self参数的问题嘛?这个test从未被实例化,我应该怎么修改?
我希望通过一个+(void)的方法来手动注册广播中心而不是在实例化方法里面注册
27
收起
正在回答
2回答
但是你在main方法中用到了test1这个对象啦,你就需要引入test头文件,然后实例化一个test1这个对象。
iOS入门:基础语法与常用控件
- 参与学习 1337 人
- 提交作业 712 份
- 解答问题 1878 个
很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星