关于iOS本地推送小bug

作者: zcwfeng | 来源:发表于2018-02-25 21:33 被阅读10次

    唠叨

    所有文章开头都是要唠叨一下,我也是. 大部分文章都会和你说,推送应该怎么怎么实现.
    都是那一套,可是遇到的坑,都不写下来.

    正文,本地推送

    一般都会告诉你这么写
    UIViewController:A 接受推送方(写,就让别人明白,好文章是你看了拿过来就能用,然后再来琢磨细节,拿来各种报错是最让人心痛的.)
    这里用了OC的写法

    注册通知
    
    - (id) init{
        self = [super init];
        if(self != nil){
    
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationAction:) name:@"refreshData" object:nil];
        }
        return self;
    }
    
    对应的要加上释放的代码
    
    - (void)dealloc{
        //移除指定的通知,不然会造成内存泄露
        [[NSNotificationCenter defaultCenter] removeObserver:self name:@"refreshData" object:nil];
        
        //下面的方法是可以移除所有通知
        [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    
    

    但是这里谁也没说 为啥放在init里面
    这里的坑在这重点来了:
    ps: 如果你是代码创建的controller.没涉及其他的创建.放在init里面
    如果你是storyboard(被人喜欢戏称sb).创建的.那么要放在viewDidLoad周期函数里面
    具体原理你们自己想想.(我不喜欢别人喂我,也不喜欢直接喂别人,实际上我也是说不明白,但是能理解明白)

    UIController: B (这个是发送方,很简单一句话,复杂一点的告诉你传字典放在,UserInfo里面但是谁也没有告诉你.为啥这么做,我只是抛砖引玉,具体的可以查查.)
    这里面用了Swift写法

            NotificationCenter.default.post(name: NSNotification.Name("refreshData"), object: ["value1":level])
    
    

    但是这个参数五花八门,所以尝试了好多东西.自己都有点懵逼了
    比如 object: 可以向我这样传字典,也可以穿self 会报错,跟销毁有关,传nil 接受方会影响.我没有往下实验.项目比较紧张,具体的用的时候试一下就好,这里挺简单
    object 也可以传输字符串之类我没有实验留给想具体学习的人用吧.

    结束语

    学习和作项目比较随意,不想以前那么追求细节了,具体还是看环境和工作的要求,速度和相关的公司需要吧.
    我也是半路出家,一直搞java android,然后出家去了iOS这里.
    也是一边工作一边努力学习. 互相探讨学习欢迎来我简书讨论.
    回复也很随意,可能不回,哈哈哈....

    ps: 不用厌烦,我是怎么方便怎么舒服怎么来. OC和Swift 混合开发.尽量能看懂有条理,不会的地方就现学现卖. 其实语言这个东西是相通的,深入了咱就不说,就说能用,能做项目,能看懂.
    这篇就是个水的文章,凑合看.

    相关文章

      网友评论

        本文标题:关于iOS本地推送小bug

        本文链接:https://www.haomeiwen.com/subject/vocdxftx.html