객체가있는 배열이 있고, 각 객체는 "날짜"라는 속성을 보유하고 있습니다. 배열을 골라서 현재 날짜와 가장 가까운 날짜를 가진 객체를 찾고 싶습니다.가장 가까운 날짜로 가장 가까운 날짜의 배열 안에 객체를 반환하는 중
#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);
}
}
의 요청에 따라, 당신에게 당신의 도움을 너무 많이들 감사합니다 업데이트!
'myObject.date'가 NSString의 인스턴스 인 것처럼 보이기 때문에 FixturesObject에 대한 공용 인터페이스를 볼 수 있습니까? – FluffulousChimp
그것은 NSString의 인스턴스입니다 – user3504848
NSDate로 두 번째 속성을 만들었습니다. 오류가 사라졌지 만 지금은이 오류와 충돌합니다 : - [NSNull date2] : 인식 할 수없는 선택자가이 줄에 0x102f20b50 인스턴스로 전송 됨 : if (interval < closest2) { – user3504848