我在主viewController的NSMutableDictionary
文件中创建了一个名为*temp
的{{1}},并添加了此代码以从我的.h
文件中提取信息。
.plist
在同一视图控制器中,我添加了一个按钮操作并添加了以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
temp=[NSMutableDictionary dictionaryWithContentsOfFile:path];
}
其中“label1是-(IBAction)mathButton:(UIButton *)_sender
{
label1.text = [temp objectForKey:@"m1name"];
}
中的文字字段,.xib
是m1name
但是当我运行它时,它不起作用,并突出显示.plist
并将其称为错误访问。
我已经坚持了几天,并尝试了很多东西。答案非常有用。
由于
答案 0 :(得分:0)
temp=[NSMutableDictionary dictionaryWithContentsOfFile:path];
您没有保留通过dictionaryWithContentsOfFile:path
创建的词典。您应该将该行更改为:
temp = [[NSMutableDictionary dictionaryWithContentsOfFile:path] retain];
(并确保它已在dealloc
中发布),或者,如果temp
是属性,请通过
self.temp = [NSMutableDictionary dictionaryWithContentsOfFile:path];
答案 1 :(得分:0)
在.h:
@interface ...
{
NSMutableDictionary* temp;
}
在.m:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString* path = [[NSBundle mainBundle] pathForResource: @"Data"
ofType: @"plist"];
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath: path];
if (exists)
{
temp = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
NSLog(@"%@", [temp description]);
}
}
- (IBAction) mathButton: (UIButton *)_sender
{
label1.text = [temp objectForKey: @"m1name"];
}
如果是MRC:
- (void) dealloc
{
[temp release];
[super dealloc];
}