IOS单例创建的理解

来源:互联网 发布:幼儿园美工室材料清单 编辑:程序博客网 时间:2024/04/30 03:00

iOS单例的创建:

         

#import <Foundation/Foundation.h>


@interface SingleLeton :NSObject


@property(nonatomic,strong)NSString *name;

@property(nonatomic,strong)NSString *school;


+(id)shareSingleleton;


@end



//.m文件的实现

#import "SingleLeton.h"


@implementation SingleLeton



+(id)shareSingleleton{

   static SingleLeton *singleton;    //主要谈谈对该函数内静态变量的理解

    

    @synchronized(self) {

       if (singleton==nil) {

            singleton=[[SingleLetonalloc]init];

        }

    }

   return singleton;

}


@end



    其中static SingleLeton *singleton 为函数内部静态变量。以后不同的文件均可调用SingleLeton的

shareSingleleton方法进行创建一个相同的SingleLeton对象。singleton在不同的文件中的生命周期不同,但其存储空间都是SingleLeton.m中,故整个程序始终只能创建一个SingleLeton对象。


0 0