【发布时间】:2014-04-07 00:22:13
【问题描述】:
我有一个包含对象的数组,每个对象都有一个名为“日期”的属性,我想通过该数组找到与当前日期最接近的对象。
#import <Foundation/Foundation.h>
@interface FixturesObject : NSObject
@property (nonatomic, strong) NSString *homeGoals;
@property (nonatomic, strong) NSString *awayGoals;
@property (nonatomic, strong) NSString *homeName;
@property (nonatomic, strong) NSString *awayName;
@property (nonatomic, strong) NSString *round;
@property (strong, nonatomic) UIImage *homeLogo;
@property (strong, nonatomic) UIImage *awayLogo;
@property (nonatomic, strong) NSString *date;
@property (nonatomic, strong) NSDate *date2;
@property (nonatomic, strong) NSNumber *epoch;
+(FixturesObject *)fixtureFromXMLDictionary: (NSDictionary *)dict;
@end
#import "FixturesObject.h"
@implementation FixturesObject
@synthesize homeGoals, awayGoals, homeLogo, awayLogo, homeName, awayName, round, date, epoch, date2;
+(FixturesObject *)fixtureFromXMLDictionary:(NSDictionary *)dict{
FixturesObject *object =[[FixturesObject alloc]init];
object.homeGoals = dict[@"HomeGoals"];
object.awayGoals = dict[@"AwayGoals"];
object.homeName = dict[@"HomeTeam"];
object.awayName = dict[@"AwayTeam"];
object.homeLogo = [UIImage imageNamed:dict[@"HomeTeam_Id"]];;
object.awayLogo = [UIImage imageNamed:dict[@"AwayTeam_Id"]];
object.round = dict[@"Round"];
object.date = dict[@"Date"];
NSString * dateString = [NSString stringWithFormat: @"%@",object.date];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate* myDate = [dateFormatter dateFromString:dateString];
object.date2 = myDate;
return object;
}
@end
mainview.m
FixturesObject *closestObject;
NSTimeInterval closestInterval = DBL_MAX;
for (FixturesObject *myObject in newFixtureObjectArray) {
NSTimeInterval interval = ABS([myObject.date2 timeIntervalSinceDate:[NSDate date]]);
if (interval < closestInterval) {
closestInterval = interval;
closestObject = myObject;
NSLog(@"My closest date: %@", myObject);
}
}
已按要求更新,非常感谢大家的帮助!
【问题讨论】:
-
我们能否看到
FixturesObject的公共接口,因为myObject.date似乎是NSString的一个实例? -
它是 NSString 的一个实例
-
我用 NSDate 创建了第二个属性,错误消失了,但现在它只是因为这个错误而崩溃:-[NSNull date2]: unrecognized selector sent to instance 0x102f20b50 @ this line : if (interval
-
我建议在循环中放置一个断点并确保 date2 是 NSDate 类的对象。
-
我发现问题是我的主数组是可变的,我在索引 0 和 1 处插入了 2 个空对象,它们必须保留在那里,否则会破坏我的应用程序设计,所以.. . 如何在索引 0 和 1 处为 nsarray 添加一个空对象? :P
标签: ios objective-c nsdate