iOS开发之单例模式下的初始化方法

iOS开发之单例模式下的初始化方法

一般的单例我们会这么写

+(instancetype)sharedXXXManager{
    static XXXManager *sharedXXXManagerInstance = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate,^{
        sharedXXXManagerInstance = [[XXXManager alloc] initPrivate];
    });

    return sharedXXXInstance;
}

在这里一般我们会用一个私有的初始化方法,在这里调用父类的指定初始化方法。

- (instancetype)initPrivate{
    self = [super init];
    if (self) {
        //init
    }
    return self;
}

而为了防止调用该类的人使用init方法,可以覆盖init方法并抛出异常以提醒他该是一个单例。

-(instancetype)init{
    @throw [NSException exceptionWithName:@"Singleton" reason:@"Use +[XXXManager sharedXXXManager]" userInfo:nil];
    nil;
}
时间: 2024-12-27 22:45:51

iOS开发之单例模式下的初始化方法的相关文章

IOS开发隐藏键盘的4种方法

IOS开发隐藏键盘的4种方法 开发的app中常会用到键盘输入完成后隐藏键盘的情况.在此总结了4种方法来实现我们的目的. 方法一--delegate方式 第一种隐藏键盘的方法,称为delegate三步法: 1. 遵循(委托/代理); 2. 调用; 3. 关联头文件(ViewController.h)中遵循代理 . 代码如下: #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITextFieldDel

iOS开发之删除过期Provisioning Profiles方法

2014-05-15 22:02 by Jeff Li 前言 系列文章:[传送门] 马上快要期末考试了,为了学点什么.就准备这系列的博客,记录复习的成果. 正文-计数  概率 概率论研究随机事件.它源于赌徒的研究.即使是今天,概率论也常用于赌博.随机事件的结果是否只凭运气呢?高明的赌徒发现了赌博中的规律.尽管我无法预知事件的具体结果,但我可以了解每种结果出现的可能性.这是概率论的核心. "概率"到底是什么?这在数学上还有争议."频率派"认为概率是重复尝试多次,某种结

iOS 开发之 为UIButton添加类别方法加载网络图片

iOS 开发之 为UIButton添加类别方法加载网络图片 使用GCD线程队列实现 工程如下: UIButton+WebCache.h #import <UIKit/UIKit.h> // 为Button添加类别方法 @interface UIButton (WebCache) - (void)xr_setButtonImageWithUrl:(NSString *)urlStr; @end UIButton+WebCache.m #import "UIButton+WebCache

IOS开发笔记——单例模式

由java转入IOS开发了,自学配合实际项目记录一些项目中用到的技巧,APP比较小,涉及到的知识点比较简单,大牛就不用看了,小兵大家一起讨论. 单例模式就是确保在程序运行过程中,一个类只有一个实例,公司的APP的账号管理是通过单例实现的.先上代码: @interface JVAccountManager : NSObject + (JVAccountManager *)sharedAccount; @end @implementation JVAccountManager + (JVAccoun

iOS开发学习笔记-创建和初始化对象

Objective-C中对象的创建和初始化(Allocating and Initializing Objects)(主要内容来自于Apple的电子书<The Objective-C Programming Language>的“Allocating and Initializing Objects”.电子书可以从iBooks商店下载.iOS Developer Library也有同名的文档,但是内容上是不同的.) 在Objective-C中创建对象分为两步:1 开辟一个对象所需的内存,All

IOS开发-发送邮件(E-mail)方法整理合集(共3种)

前言:在IOS开发中,有时候我们会需要用到邮件发送的功能.比如,接收用户反馈和程序崩溃通知等等.其实这个功能是很常用的,因为我目前就有发送邮件的开发需求,所以顺便整理下IOS发送邮件的方法. IOS原生自带有两种方法发送邮件的方法,另一种是使用第三方库: 1)openURL(原生) ——用户体验较差,程序会进入后台,跳转至邮件发送界面. 2)MFMailComposeViewController(原生) ——不会进入后台,使用模态弹出邮件发送视图. 3)SKPSMTPMessage(https:

ios开发中创建静态库的方法介绍

在进行iOS项目开发时,为了减少项目的编译时间,通常情况下会把项目中的私密内容打包成静态库,或者是把ios项目中变动较少一部分打包成静态库以便提高编译效率,很多iOS初学者对静态库与动态库的区别及创建使用,下面就一起来学习下: (一)iOS静态库.动态库与Framework静态库与动态库的区别: (1)什么是库? 库(Library)直白一点说就是一段编译好的二进制代码,加上头文件就可以供别人使用;(例如: iOS中Objective-C编译下的.h和.m文件,打包静态库后会变为.h和.a文件)

iOS开发——动画编程的几种方法

动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];//设置动画[

iOS开发中WebView的基本使用方法简介

#import <Foundation/Foundation.h> int main(int argc, char const *argv[]) { // 参考地址:http://ubluesky.com/archives/55 // NSURL初始化方法: NSURL *url=[NSURL URLWithString:@"http://www.ubluesky.com?id=1"]; // 针对 URLWithString 初始化失败的解决方案 NSString *st