我正在尝试将此日期保存在 NSUSerDefaults 中:
2011-04-14T13:18:25+0000
但我不想要最后一位(+0000),所以我用这个方法把它砍掉了:
NSString *since = [last objectForKey:@"updated_time"];
NSString *cutOff = @"+0000";
NSRange range = [since rangeOfString:cutOff];
self.lastUpdated = [since substringToIndex:range.location];
[[NSUserDefaults standardUserDefaults] setObject:lastUpdated forKey:@"lastUpdated"];
正如您所看到的,这只是一个非常简单的操作,将上面的字符串截断为:
2011-04-14T13:18:25
但是,当我从 NSUserDefaults 加载此内容时,我得到以下信息:
2011-04-14 13:18:25 +0000
谁能告诉我为什么?
UPDATE:
我像往常一样在 .h 中声明了 lastUpdated:
@interface TwitModel
{
NSString *lastUpdated;
}
@property (retain) NSString *lastUpdated;
in .m:
@synthesize lastUpdated;
当我想加载它时:
if(self.lastUpdated == nil) {
self.lastUpdated = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastUpdated"];
}
你需要打电话synchronize
on NSUserDefaults
为了让它正确保存数据:
[[NSUserDefaults standardUserDefaults] synchronize];
EDIT
这是我的工作代码:
// Output previous launch's stored value
NSLog(@"Value From Previous Launch: %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"lastUpdated"]);
NSString *since = @"2011-04-14T13:18:25+0000";
NSLog(@"Since: %@", since);
NSString *cutOff = @"+0000";
NSRange range = [since rangeOfString:cutOff];
NSString* lastUpdated = [since substringToIndex:range.location];
[[NSUserDefaults standardUserDefaults] setObject:lastUpdated forKey:@"lastUpdated"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Value: %@", [[NSUserDefaults standardUserDefaults] valueForKey:@"lastUpdated"]);
和输出:
2011-04-14 08:52:29.972 TestApp[2117:207] Value From Previous Launch: 2011-04-14T13:18:25
2011-04-14 08:52:29.973 TestApp[2117:207] Since: 2011-04-14T13:18:25+0000
2011-04-14 08:52:29.975 TestApp[2117:207] Value: 2011-04-14T13:18:25
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)