iOS OC C

单例传递数据

920 发布: 2015/12/8 12:46 本文总阅读量

写一个单例 (一个类只有一个实例)

#import
@interface DataModel : NSObject
@property (strong, nonatomic) NSString* imageUrl;
+(DataModel*)sharedModel;
@end
#import "DataModel.h"
@implementation DataModel
static DataModel* dataModel = nil;  //为单例对象实现一个静态实例,并初始化,然后设置成nil,
+(DataModel*)sharedModel
{
    if (dataModel == nil) {
        dataModel = [[DataModel alloc] init];//实现一个实例构造方法检查上面声明的静态实例是否为nil,如果是则新建并返回一个本类的实例
    }
    return dataModel;
}
-(id)init
{
    if (self = [super init]) {
        self.imageUrl = [[NSString alloc] init];
    }  
    return self;
}
//重写allocWithZone方法,用来保证其他人直接使用alloc和init试图获得一个新实力的时候不产生一个新实例,
@end

在view1中

DataModel* dataModel  = [DataModel sharedModel];
dataModel.imageUrl = self.info.imageOriginalURL;

在view2中

@property (retain , nonatomic) DataModel* datamodel;

self.datamodel = [DataModel sharedModel];
self.image.imageURL=[NSURL URLWithString:self.datamodel.imageUrl];