NSDate 属性を常に現在の日付で開始し、ユーザーが過去の日付を選択できないようにするために、このコードを使用 します。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:0];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[shiftDatePicker setMinimumDate:minDate];
UIDatePicker
私の代わりにあなたの名前を使ってください。
最初の質問の答えは少し理論的ですが、理解していただければ幸いです。
最初に、 で Table のオブジェクトを取得する必要がありますUIViewController
。から値を取得CoreData
し、入力したユーザーと照合します。ユーザーがより大きな値を入力した場合は問題ありません。以前の値以下の場合はエラーを表示します。
これを最初の質問に使用します。
- (NSFetchRequest *)getBasicRequestForEntityName: (NSString *)entityName
{
//Get Fetch request for particuler entity.
NSManagedObjectContext * managedObjectContext = [[AppDelegate getAppdelegate] managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
return request;
}
-(NSMutableArray*)getAllRequestedShifts
{
NSFetchRequest *request = [self getBasicRequestForEntityName:@"YOUR ENTITY NAME"];
[request setReturnsObjectsAsFaults:NO];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"previous value" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
NSError *error = nil;
NSArray *results = [[managedObjectContext executeFetchRequest:request error:&error]mutableCopy];
NSMutableArray *arr=[NSMutableArray array];
if (!error && [results count] > 0)
{
for (int k=0; k<[results count]; k++)
{
YourentityObject *requestShiftObj = [results objectAtIndex:k];
[arr addObject:requestShiftObj];
}
}
return arr;
}
- (void)viewDidLoad
メソッドでは、この行を使用します
NSMutableArray* arrayOfSentRequest=[self getAllRequestedShifts];
これによりCoreData
、maxvalue オブジェクトが一番上にあるすべてのオブジェクトのリストが返されます。
このオブジェクトを取得し、プロパティpreviousvalueを使用して、入力されている値と比較し、アルゴに従って結果を生成します。
このコードを使用
NSDateFormatter* dateF = [[NSDateFormatter alloc] init];
[dateF setDateFormat:@"YYYY-MM-dd"];
NSString *currentDate=[dateF stringFromDate:[NSDate date]];
NSDate * currentDateObj=[dateF dateFromString:currentDate];
NSDate * shiftDateFieldObj=[dateF dateobjectfromDB];
NSTimeInterval timeDifferenceBetweenDates = [shiftDateFieldObj timeIntervalSinceDate:currentDateObj];
if (timeDifferenceBetweenDates>0.0)
{
Enter the value to text field ;
}
else
{
show alert
}
お役に立てれば。