NSMutableDictionary不保留值

时间:2010-12-09 16:45:02

标签: objective-c xcode

我是Objective-c的半新手,并且为什么我的NSMutableDictionary没有保留信息。我在头文件中声明我的变量:

@interface view_searchResults : UIViewController <UITableViewDataSource, UITableViewDelegate> {
    NSMutableDictionary *imageDicationary;
}

@property (nonatomic, retain) NSMutableDictionary *imageDictionary;

然后在我的.m文件中,我有以下内容:

@synthesize imageDictionary;

-(UIImage *)getImageForURL:(NSURL*)url {

    UIImage*image;
    image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
    [imageDictionary setObject:image forKey:@"test"];

    if([imageDictionary objectForKey:@"test"]){

        NSLog(@"Exists");

    }

}

显然还有其他代码支持这一点,但我可以确认正在传递URL,并且文件正在其他地方正确下载。另外,我可以确认正在执行此函数,而且我没有在文档中的任何其他位置引用NSMutableDictionary。

谢谢!

3 个答案:

答案 0 :(得分:5)

您在哪里创建NSMutable词典?如果这真的是你需要创建字典的所有代码:

@implementation view_searchResults 
- (id) init;{
    self = [super init];
    if(self) {
        imageDicationary = [NSMutableDictionary alloc] init];    // should also be released in dealloc.
    }
    return self;
}

如果这是错误,那么你不会导致崩溃的原因是因为在objective-C中,向nil对象发送消息是有效的 - 它只是什么都不做。

答案 1 :(得分:1)

你还没告诉我们是否存在“存在”NSLog,你也没有返回图像。

换句话说,我没有看到你的问题

答案 2 :(得分:0)

imageDictionary已初始化了吗? (ALLOC /初始化?)