扩展我的单例类

时间:2012-09-20 09:10:29

标签: objective-c xcode singleton

我使用的singleton类只包含一个传递的值。然后我尝试添加另一个。

#import <Foundation/Foundation.h>

@interface GlobalValueContainer : NSObject {


    NSString *passedText;
    NSString *myPassedPictureName;
}


@property (nonatomic, strong) NSString* passedText;
@property (nonatomic, strong) NSString* myPassedPictureName;


+ (GlobalValueContainer *) sharedStore;

@end


#import "GlobalValueContainer.h"

@implementation GlobalValueContainer;

@synthesize passedText;
@synthesize myPassedPictureName;

static GlobalValueContainer *sharedStore = nil;


+ (GlobalValueContainer *) sharedStore {
    @synchronized(self){
        if (sharedStore == nil){
            sharedStore = [[self alloc] init];
        }
    }

    return sharedStore;
}


@end

从第一个视图开始,我尝试设置myPassedPictureName

-(IBAction)setPicture:(id)sender{

    myPicture = @"Hus";
    GlobalValueContainer* localContainer = [GlobalValueContainer sharedStore];
    localContainer.myPassedPictureName = myPicture;


}

在第二个视图中我想设置一个具有该名称的图像视图(+ png)

- (void)viewDidLoad
{
    [super viewDidLoad];
    //Store* myStore = [Store sharedStore];


    GlobalValueContainer* localContainer = [GlobalValueContainer sharedStore];
    myPassedPictureName = localContainer.myPassedPictureName;
    myPicture.image = [UIImage imageNamed:myPassedPictureName];
    whatFile.text = myPassedPictureName;

   //object.imageView.image = [UIImage imageNamed:@"downloadedimage.png"];

}

图片没有显示。我还尝试添加UIlabel并设置应该传递的字符串。但它也变成了空白。

当我使用“passedText”传递文本时,它可以正常工作。当我添加第二个NSString时,没有任何反应?。

首先要做的事情。任何人都可以看到错误(仍然在这里学习对象:),这是我尝试操纵UIImageView的正确方法。我想使用myPassedPictureName根据按下的按钮在多个UIView上设置图片。

期待您的意见。

1 个答案:

答案 0 :(得分:0)

如果变量“myPassedPictureName”是指向文件的URL,则您无法使用此方法:

 [UIImage imageNamed:myPassedPictureName];

你应该使用

NSData *data = [[NSData alloc] initWithContentsOfURL:myPassedPictureName];
UIImage *image = [[UIImage alloc] initWithData:data];