Tag: Mobile SDK

与无法识别的选择器对抗时学习目标C

与无法识别的选择器对抗时学习目标C 前提: 我试图在我的项目中实施AdManager单例类,但遇到一个问题,试图使其调用广告SDK。 https://i.gyazo.com/a9b3c81c22d46935f9937bc976bce248.mp4 好吧,那不是很漂亮。 一些其他背景。 我选择单例方法的想法是,我们不能在这个类中制造多个对象。 当我们引用此类时,我们都希望引用该对象。 我不认为问题在单例实现的背后,但是我不知道代码是如何工作的..那是个问题。 我的最终目标-我只希望有一位广告经理可以引用广告展示位置,广告信息,并在不同的视图中展示它们。 为此,我希望能够在我的任何控制器中调用AdManager并将其分配给我一个广告。 简单。 然后,插入各种其他货币化SDK,并即时进行交换,这样我就可以很好地划分游戏和货币化分区。 因此,事不宜迟,让我们深入研究如何首先声明单例,以确保我正确地做到了。 这是在做什么 +(id)sharedInstance { 静态AdManager * sharedInstance = nil; 静态dispatch_once_t OnceToken; dispatch_once(&onceToken,^ { sharedInstance = [[self alloc] init]; }); 返回sharedInstance; } 逐行细分: +(id)sharedInstance “ +”号表示这是类函数,而不是实例函数。 类方法以+开头,而实例方法以-开头。 可以将类方法与类名一起使用。 实例方法要求存在该类的实例。 实例(或对象)是您根据蓝图建造的实际房屋。 一堂课就像一栋房子的蓝图:您只有一个蓝图,并且(通常)您不能仅凭蓝图就做那么多。 https://stackoverflow.com/questions/1053592/what-is-the-difference-between-class-and-instance-methods (id)表示指向任何Objective-C对象的指针。 作为目标c,这意味着我们需要确保保留/释放。 编译器非常高兴您可以将任何对象隐式转换为id。 这意味着这是一个类方法,它返回指向某个对象的指针。 https://stackoverflow.com/questions/7987060/what-is-the-意思-of-id http://www.peachpit.com/articles/article.aspx?p=377302&seqNum=2 静态AdManager * sharedInstance = nil; […]