Ios 使用AFNetworking(dateFormatter)分析日期字符串
我正在更改我的应用程序,以便它可以通过AFNetworking解析我的JSON,当我尝试使用dateFormatter更改日期字符串时,我遇到了一个错误。我有一个名为“UpcomingRelease”的NSObject、一个名为“UpcomingReleasesViewController”的CollectionViewController和一个名为“ReleaseViewController”的destinationViewController 这是我的旧代码: *UpcomingRelease.hIos 使用AFNetworking(dateFormatter)分析日期字符串,ios,json,afnetworking,afnetworking-2,Ios,Json,Afnetworking,Afnetworking 2,我正在更改我的应用程序,以便它可以通过AFNetworking解析我的JSON,当我尝试使用dateFormatter更改日期字符串时,我遇到了一个错误。我有一个名为“UpcomingRelease”的NSObject、一个名为“UpcomingReleasesViewController”的CollectionViewController和一个名为“ReleaseViewController”的destinationViewController 这是我的旧代码: *UpcomingReleas
@interface UpcomingRelease : NSObject
@property (nonatomic, strong) NSString *release_date;
- (NSString *) formattedDate;
@end
*UpcomingRelease.m
- (NSString *) formattedDate {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *newDate = [dateFormatter dateFromString:self.release_date];
[dateFormatter setDateFormat:@"MMMM dd"];
return [dateFormatter stringFromDate:newDate];
}
@synthesize singleRelease = _singleRelease;
@synthesize release_date = _release_date;
- (void)viewDidLoad
{
[super viewDidLoad];
if([_singleRelease objectForKey:@"release_date"] != NULL)
{
self.release_date.text = [NSString stringWithFormat:@"%@", _singleRelease.formattedDate];
}
else
{
self.release_date.text = [NSString stringWithFormat:@"Releasing Soon"];
}
}
*ReleaseViewController.h(destinationViewController)
*ReleaseViewController.m
- (NSString *) formattedDate {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
NSDate *newDate = [dateFormatter dateFromString:self.release_date];
[dateFormatter setDateFormat:@"MMMM dd"];
return [dateFormatter stringFromDate:newDate];
}
@synthesize singleRelease = _singleRelease;
@synthesize release_date = _release_date;
- (void)viewDidLoad
{
[super viewDidLoad];
if([_singleRelease objectForKey:@"release_date"] != NULL)
{
self.release_date.text = [NSString stringWithFormat:@"%@", _singleRelease.formattedDate];
}
else
{
self.release_date.text = [NSString stringWithFormat:@"Releasing Soon"];
}
}
我听到一个错误说“在“NSDictionary”类型的对象上找不到属性“formattedDate”。错误已经表明
NSDictionary
没有名为formattedDate
的属性。现在您正在调用\u singleRelease.formattedDate
和\u singleRelease
是一个NSDictionary
将代码更改为以下内容:
if([_singleRelease objectForKey:@"release_date"] != NULL)
{
NSString *rd = [_singleRelease objectForKey:@"release_date"]; // I assume that this is a string
UpcomingRelease *upcoming = [[UpcomingRelease alloc] init];
upcoming.release_date = rd;
self.release_date.text = [NSString stringWithFormat:@"%@", upcoming.formattedDate];
}
当您尝试访问属性为formattedDate的对象时,该对象似乎已被释放。我认为问题不在于日期格式化程序,而在于如何处理对象hs this propertyUpcomingRelease是一个NSObject,singleRelease是我的destinationViewController(ReleaseViewController)的一个NSDictionary,你为什么使用UpcomingRelease?我用作基础的教程的代码就是这样设置的。但我猜是为了存储NSString并更改日期,使其可读。好的,我根据您提供的其他详细信息编辑了我的答案。这行吗?