Ios 需要重新加载/重新计算NSArray
我希望有人能帮上忙,我想弄明白这件事,真是束手无策 基本上,我有一个JSON提要,它将数据拉入一个Ios 需要重新加载/重新计算NSArray,ios,arrays,database,nsdictionary,Ios,Arrays,Database,Nsdictionary,我希望有人能帮上忙,我想弄明白这件事,真是束手无策 基本上,我有一个JSON提要,它将数据拉入一个NSDictionary,另外还有一个文件(.h和.m),其中添加了一些与当前时间相关的条件字段。我需要每x分钟更新/刷新一次条件字段,而不需要从JSON提要重新加载/提取数据。相反,我希望重新运行条件测试,并使用最初创建的数据库更新数据库 有人知道怎么做吗?我到处都在研究,找不到答案 仅供参考这里是设置数据库中额外字段/实体的条件参数: // // Entity.m // tabbed //
NSDictionary
,另外还有一个文件(.h和.m),其中添加了一些与当前时间相关的条件字段。我需要每x分钟更新/刷新一次条件字段,而不需要从JSON提要重新加载/提取数据。相反,我希望重新运行条件测试,并使用最初创建的数据库更新数据库
有人知道怎么做吗?我到处都在研究,找不到答案
仅供参考这里是设置数据库中额外字段/实体的条件参数:
//
// Entity.m
// tabbed
//
// Created by administrator on 16.07.12.
// Copyright (c) 2012 __HappyTimes__. All rights reserved.
//
#import "RestarauntEntity.h"
#import "NSDate+DeviceDate.h"
@implementation RestarauntEntity
@synthesize city = _city;
@synthesize closingTime = _closingTime;
@synthesize description = _description;
@synthesize lattitude = _lattitude;
@synthesize longditude = _longditude;
@synthesize openingState = _openingState;
@synthesize openingTime = _openingTime;
@synthesize phoneNumber = _phoneNumber;
@synthesize thumbnailUrl = _thumbnailUrl;
@synthesize title = _title;
@synthesize website = _website;
- (id)initWithDictionary:(NSMutableDictionary *) dictionary
{
self = [super init];
if (self) {
_title = [dictionary objectForKey:@"title"];
_description = [dictionary objectForKey:@"content"];
_thumbnailUrl = [dictionary objectForKey:@"thumbnail"];
_city = [[[dictionary objectForKey:@"custom_fields"] objectForKey:@"City"] objectAtIndex:0];
_phoneNumber = [[[dictionary objectForKey:@"custom_fields"] objectForKey:@"Phone Number"] objectAtIndex:0];
_website = [[[dictionary objectForKey:@"custom_fields"] objectForKey:@"Address"] objectAtIndex:0];
// get opening/closing time values
NSString *currentWeekDayName = [NSDate currentDayOfTheWeekInEnglish];
NSString *openingTimeForCurentDay = [NSString stringWithFormat:@"%@ Opening Time", currentWeekDayName];
NSString *closingTimeForCurentDay = [NSString stringWithFormat:@"%@ Closing Time", currentWeekDayName];
_openingTime = [[[dictionary objectForKey:@"custom_fields"] objectForKey:openingTimeForCurentDay] objectAtIndex:0];
_closingTime = [[[dictionary objectForKey:@"custom_fields"] objectForKey:closingTimeForCurentDay] objectAtIndex:0];
// Prepare current day string in format yyyy-MM-dd
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"yyyy-MM-dd "];
[timeFormat setPMSymbol:@"pm"];
[timeFormat setAMSymbol:@"am"];
NSDate *now = [[NSDate alloc] init];
NSString *currentDay = [timeFormat stringFromDate:now];
// Find full date for opening and close time
[timeFormat setDateFormat:@"yyyy-MM-dd hh:mm a"];
NSDate *openingTimeDate = [timeFormat dateFromString:[currentDay stringByAppendingString:_openingTime]];
NSDate *closingTimeDate = [timeFormat dateFromString:[currentDay stringByAppendingString:_closingTime]];
// Find out opening state of the restaraunt
if(([openingTimeDate compare:now] == NSOrderedAscending) || ([openingTimeDate compare:now] == NSOrderedSame)) {
if([closingTimeDate compare:now] == NSOrderedDescending)
{
_openingState = RestarauntOpeningStateOpen;
} else {
_openingState = RestarauntOpeningStateClosed;
}
} else {
NSDate *nowPlusTwoHours = [now dateByAddingTimeInterval:7200.0];
if(([openingTimeDate compare:nowPlusTwoHours] == NSOrderedAscending) || ([openingTimeDate compare:nowPlusTwoHours] == NSOrderedSame))
{
_openingState = RestarauntOpeningStateWillBeOpenedInTwoHours;
} else {
_openingState = RestarauntOpeningStateClosed;
}
}
// _openingState = RestarauntOpeningStateWillBeOpenedInTwoHours;
NSArray *lattitudeRecord = [[dictionary objectForKey:@"custom_fields"] objectForKey:@"Lattitude"];
_lattitude = [[lattitudeRecord objectAtIndex:0] doubleValue];
NSArray *longditudeRecord = [[dictionary objectForKey:@"custom_fields"] objectForKey:@"Longditude"];
_longditude = [[longditudeRecord objectAtIndex:0] doubleValue];
}
//[setValue:@"RestarauntOpeningStateOpen" forKey:@"_openingState"];
// _openingState setValue:@"RestarauntOpeningStateOpen" forKeyPath:RestarauntOpeningState;
return self;
}
//-(void)setValue:(id)value forKeyPath:(NSString *)keyPath{
// _openingState = RestarauntOpeningStateOpen;
//}
//-(void)setValue:(id)value forKeyPath:(NSString *)keyPath{
// _openingState = RestarauntOpeningStateOpen;
//}
@end
不应存储打开状态。这应该是一个计算属性。 创建在请求时返回此值的方法:
- (OpeningState)openingState {
OpeningState _openingState;
NSDate *openingTimeDate = [timeFormat dateFromString:[currentDay stringByAppendingString:_openingTime]];
NSDate *closingTimeDate = [timeFormat dateFromString:[currentDay stringByAppendingString:_closingTime]];
// Find out opening state of the restaurant
if(([openingTimeDate compare:now] == NSOrderedAscending) || ([openingTimeDate compare:now] == NSOrderedSame)) {
if([closingTimeDate compare:now] == NSOrderedDescending) {
_openingState = RestarauntOpeningStateOpen;
} else {
_openingState = RestarauntOpeningStateClosed;
}
} else {
NSDate *nowPlusTwoHours = [now dateByAddingTimeInterval:7200.0];
if(([openingTimeDate compare:nowPlusTwoHours] == NSOrderedAscending) || ([openingTimeDate compare:nowPlusTwoHours] == NSOrderedSame))
{
_openingState = RestarauntOpeningStateWillBeOpenedInTwoHours;
} else {
_openingState = RestarauntOpeningStateClosed;
}
}
return _openingState
}
代码格式
用于代码,而不是强调。另外,您的问题是您希望其他人为您修改的代码转储,这使得它的质量很低。另外,仅仅说你研究了你的问题不符合研究的资格。嗨,丹,谢谢你的意见,但我恐怕你完全错了,我想在这里学习。再次感谢你的低质量批评和傲慢的假设/傲慢的输入(!)谢谢你,我已经编辑了一点,但肯定能完成这项工作,谢谢你为我指明了正确的方向,你是一个传奇!!