在viewDidLoad时使用NSUserDefaults加载存储的注释的副标题

时间:2011-01-01 17:36:40

标签: iphone ios4 nsuserdefaults mkannotation mkannotationview

基本上,我尝试做的是将字幕(街道地址)保存到注释中。当应用程序终止并再次启动时,我希望这个存储的字幕显示在注释的标注中。我究竟做错了什么?我只是无法让它工作......

storeLocation.m

- (void)setCoordinate:(CLLocationCoordinate2D)coor {
                  ............

                    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
                    [userDef setValue:subtitle forKey:@"SavedAddress"];
                    [userDef synchronize];
                    NSLog(@"Stored subtitle");
                }

mainViewController.m

-(void)viewDidLoad {
                NSString *savedAddress = [[NSUserDefaults standardUserDefaults] objectForKey:@"SavedAddress"];
    if (savedAddress) {
    }                
}

真的很感激这方面的一些帮助......提前致谢!

2 个答案:

答案 0 :(得分:0)

尝试srtingForKey:而不是objectForKey:

NSString *savedAddress = [[NSUserDefaults standardUserDefaults] stringForKey:@"SavedAddress"];

答案 1 :(得分:0)

我用

中的if语句解决了这个问题
-(NSString *)subtitle. 

那样:

-(NSString *)subtitle{

    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    if ([userDef boolForKey:@"SavedAddress"]) {
        NSString *savedAddress = [[NSUserDefaults standardUserDefaults] stringForKey:@"SavedAddress"];
        return savedAddress;
    }

    else {
        return subtitle;
    }
}