我是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。
谢谢!
答案 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 /初始化?)