从字典响应中更改 NSUserDefaults standardUserDefaults 的日期值
Changing The Date Values of NSUserDefaults standardUserDefaults from a Dictionary Response
我的方法接收到一个名为 responseDict
的字典,其中包含键,例如 id
、status
、name
、phoneNumber
、date
等
responseDict[@"data"][@"value"][n]
(n
为数字)
如果我们的代码使用NSUserDefaults
访问数据:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
如何将 date
MySQL 属性 2017-05-12 10:00:00
更改为 Dec 5, 2017 10 AM
?
我尝试了以下方法,但它似乎并没有改变 UILabel
中的 defaults
。
[defaults setInteger:[dictionary[@"id"] integerValue] forKey:@"ID"];
[defaults setObject:dictionary[@"status"] forKey:kNSUDoctorStatus];
[defaults setInteger:[dictionary[@"dur"] integerValue] forKey:@"duration"];
[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];
[defaults synchronize];
编辑:
UILabel
UILabel 似乎已被添加到视图中:
UILabel *vb = (UILabel *)[self.view viewWithTag:personMessageViewTag];
定义为:
#define personMessageViewTag 3001
博士Class
还有一个PersonDetailView
class初始化:
PersonDetailView *personOnTheView;
并在方法中调用:
personOnTheView = [PersonDetailView sharedInstance];
personOnTheView.delegate = self;
[personOnTheView updateValues];
[self.view addSubview:personOnTheView];
方法:
这是 [personOnTheView updateValues]
的代码
-(void)updateValues{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSString *strImageUrl = [NSString stringWithFormat:@"%@%@",baseUrlForXXHDPIImage,[ud objectForKey:kOnGoingBookingPersonProfileImageKey]];
_doctorName.text = [ud objectForKey:kOnGoingBookingPersonNameKey];
NSString *at = [NSString stringWithFormat:@"%@",flStrForObj([Helper getLocalDate:[ud objectForKey:kOnGoingBookingPersonBookingDate]])];
_appoinmentTime.text = at;
float rating = [[ud objectForKey:kOnGoingBookingPersonRatingKey] floatValue];
_starRatingView.value = rating;
[_profilepic sd_setImageWithURL:[NSURL URLWithString:[Helper removeWhiteSpaceFromURL:strImageUrl]]
placeholderImage:[UIImage imageNamed:@"doctor_image_thumbnail"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
}];
}
问题:
每次我更改或修改:
[defaults setObject:dictionary[kPNPayloadAppoinmentTimeKey] forKey:kOnGoingBookingPersonBookingDate];
收件人:
[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];
或简单如:
[defaults setObject:@"Something here" forKey:@"date"];
显示空白
补充信息编辑:
[Helper getLocalDate]
代码:
+(NSString *)getLocalDate:(NSString *)gmtdate {
NSString *dateStr = gmtdate;
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *destinationDate = [dateFormatter1 dateFromString:dateStr];
NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
[dateFormatters setDateFormat:@"MMM d, yyyy HH a"];
dateStr = [dateFormatters stringFromDate: destinationDate];
// NSLog(@"DateString : %@", dateStr);
return dateStr;
}
如果日期字符串中有时区,借助此方法,您可以获得本地格式的日期
-(NSDate*)convertDateToLocal:(NSString *)strDate
{
NSDateFormatter *localFormat = [[NSDateFormatter alloc] init];
[localFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *localDate = [localFormat dateFromString:strDate];
return localDate;
}
如果您没有时区,这里有两种public日期转换方法
1) 来自字符串的日期,
+ (NSDate *)dateFromString:(NSString *)strSource inFormat:(NSString *)strTargetFormat
{
NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
[dtfFormatter setDateFormat:strTargetFormat];
return [dtfFormatter dateFromString:strSource];
}
2) 来自日期的字符串,
+ (NSString *)stringFromDate:(NSDate *)dtSourceDate inFormat:(NSString *)strTargetFormat
{
NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
[dtfFormatter setDateFormat:strTargetFormat];
if (dtSourceDate != nil)
return [dtfFormatter stringFromDate:dtSourceDate];
else
return @"";
}
希望对您有所帮助。
我的方法接收到一个名为 responseDict
的字典,其中包含键,例如 id
、status
、name
、phoneNumber
、date
等
responseDict[@"data"][@"value"][n]
(n
为数字)
如果我们的代码使用NSUserDefaults
访问数据:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
如何将 date
MySQL 属性 2017-05-12 10:00:00
更改为 Dec 5, 2017 10 AM
?
我尝试了以下方法,但它似乎并没有改变 UILabel
中的 defaults
。
[defaults setInteger:[dictionary[@"id"] integerValue] forKey:@"ID"];
[defaults setObject:dictionary[@"status"] forKey:kNSUDoctorStatus];
[defaults setInteger:[dictionary[@"dur"] integerValue] forKey:@"duration"];
[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];
[defaults synchronize];
编辑:
UILabel
UILabel 似乎已被添加到视图中:
UILabel *vb = (UILabel *)[self.view viewWithTag:personMessageViewTag];
定义为:
#define personMessageViewTag 3001
博士Class
还有一个PersonDetailView
class初始化:
PersonDetailView *personOnTheView;
并在方法中调用:
personOnTheView = [PersonDetailView sharedInstance];
personOnTheView.delegate = self;
[personOnTheView updateValues];
[self.view addSubview:personOnTheView];
方法:
这是 [personOnTheView updateValues]
-(void)updateValues{
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSString *strImageUrl = [NSString stringWithFormat:@"%@%@",baseUrlForXXHDPIImage,[ud objectForKey:kOnGoingBookingPersonProfileImageKey]];
_doctorName.text = [ud objectForKey:kOnGoingBookingPersonNameKey];
NSString *at = [NSString stringWithFormat:@"%@",flStrForObj([Helper getLocalDate:[ud objectForKey:kOnGoingBookingPersonBookingDate]])];
_appoinmentTime.text = at;
float rating = [[ud objectForKey:kOnGoingBookingPersonRatingKey] floatValue];
_starRatingView.value = rating;
[_profilepic sd_setImageWithURL:[NSURL URLWithString:[Helper removeWhiteSpaceFromURL:strImageUrl]]
placeholderImage:[UIImage imageNamed:@"doctor_image_thumbnail"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
}];
}
问题:
每次我更改或修改:
[defaults setObject:dictionary[kPNPayloadAppoinmentTimeKey] forKey:kOnGoingBookingPersonBookingDate];
收件人:
[defaults setObject:[NSString stringWithFormat:@"%@ some",dictionary[@"date"]] forKey:@"date"];
或简单如:
[defaults setObject:@"Something here" forKey:@"date"];
显示空白
补充信息编辑:
[Helper getLocalDate]
代码:
+(NSString *)getLocalDate:(NSString *)gmtdate {
NSString *dateStr = gmtdate;
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *destinationDate = [dateFormatter1 dateFromString:dateStr];
NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
[dateFormatters setDateFormat:@"MMM d, yyyy HH a"];
dateStr = [dateFormatters stringFromDate: destinationDate];
// NSLog(@"DateString : %@", dateStr);
return dateStr;
}
如果日期字符串中有时区,借助此方法,您可以获得本地格式的日期
-(NSDate*)convertDateToLocal:(NSString *)strDate
{
NSDateFormatter *localFormat = [[NSDateFormatter alloc] init];
[localFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *localDate = [localFormat dateFromString:strDate];
return localDate;
}
如果您没有时区,这里有两种public日期转换方法
1) 来自字符串的日期,
+ (NSDate *)dateFromString:(NSString *)strSource inFormat:(NSString *)strTargetFormat
{
NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
[dtfFormatter setDateFormat:strTargetFormat];
return [dtfFormatter dateFromString:strSource];
}
2) 来自日期的字符串,
+ (NSString *)stringFromDate:(NSDate *)dtSourceDate inFormat:(NSString *)strTargetFormat
{
NSDateFormatter *dtfFormatter = [[NSDateFormatter alloc] init];
[dtfFormatter setDateFormat:strTargetFormat];
if (dtSourceDate != nil)
return [dtfFormatter stringFromDate:dtSourceDate];
else
return @"";
}
希望对您有所帮助。