- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发我的第一个应用程序,需要一些关于如何处理下一个任务和问题的建议。该应用程序的前提是用户有一个 TableView ,单击导航栏中的加号按钮并显示文本字段以插入信息。单击保存后,它会保存到核心数据并显示在 TableView 中。
表格 View 是分段的。现在,我将“日期”表示为 NSString,只是为了启动我的应用程序,但我需要将其更改为 DatePicker。这些部分基于日期。
我有一个核心数据模型如下:
交易实体与此处的每个其他实体都有关系。
如前所述,起初,为了让我的应用正常运行,我让日期实体有一个 dateOfEvent 属性,它是一个 NSString 而不是 NSDate,但当然从长远来看这不会起作用。
我已将此属性的模型更改为 NSDate,并重新生成了 NSManagedObject 子类。
独立地,我有一个 DatePicker 可以正常工作,但它将信息输出到文本字段中的字符串。
我现在想要实现的是使用 DatePicker,选择一个日期并将其保存到核心数据日期实体(dateOfEvent 属性),然后我可以在 TableView 中将其用作部分标题。
这是我在 View Controller 中保存的代码:
- (IBAction)save:(id)sender
{
NSManagedObjectContext *context = [self managedObjectContext];
Transaction *transaction = [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context];
Date *enteredDate = (Date *)[Date occasionWithDate:self.dateTextField.text inManagedObjectContext:context];
transaction.dates = enteredDate;
// Code to save Person, Occasion, etc.
}
enteredDate 正在调用特定的 occasionWithDate 方法:
+ (Date *)occasionWithDate:(NSString *)enteredDate inManagedObjectContext:(NSManagedObjectContext *)context
Date *date = nil;
// Creating a fetch request to check whether the name of the person already exists
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Date"];
request.predicate = [NSPredicate predicateWithFormat:@"dateOfEvent = %@", enteredDate];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateOfEvent" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *dates = [context executeFetchRequest:request error:&error];
if (!dates)
{
// Handle Error
}
else if (![dates count])
{
// If the person count is 0 then let's create it
date = [NSEntityDescription insertNewObjectForEntityForName:@"Date" inManagedObjectContext:context];
date.dateOfEvent = enteredDate;
}
else
{
// If the object exists, just return the last object .
date = [dates lastObject];
}
return date;
}
这会执行一个 fetchRequest 以确保我要么返回一个现有日期,要么添加一个新日期(如果不存在)。
这就是我想要的行为,但当然,该方法正在传递一个字符串,我需要传递一个日期。
考虑到这一点,我该如何选择 DatePicker 的值,以与上述相同的方式将其添加到 Core Data 数据库(检查日期是否存在)并将其显示在表的各部分中查看?
我想检查日期是否存在的原因是因为如果 2013 年 12 月 2 日有事件,它将是唯一的。但是,如果我在 2013 年 12 月 2 日创建另一个事件,我希望它使用现有的 12 月 2 日,而不是为 12 月 2 日创建第二个条目。原因是我的应用程序有一个选项卡 View ,其中第二个选项卡由日期决定,所以我不希望有两个单独的 12 月 2 日。
这是一个旁注。 我想实现的主要目标是,使用日期选择器并将所选值保存到 Transaction.dates.dateOfEvent 到核心数据。
我知道我是否要做类似 date.dateOfEvent = [NSDate date]
的事情;它将现在分配日期和时间。这不是我想要的。
如有任何帮助,我们将不胜感激。
谢谢,
编辑:添加 UIDatePicker 代码 - 下面的第一个代码片段用于在使用 NSString 作为属性时保存到 textField
在viewDidLoad
[self.datePicker addTarget:self action:@selector(getSelection:) forControlEvents:UIControlEventValueChanged];
-(void)getSelection:(id)sender
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSDate *date = [self.datePicker date];
NSString *formattedDateString = [dateFormatter stringFromDate:date];
self.dateTextField.text = formattedDateString;
}
编辑:保存到核心数据的方法如上 - 它调用 occasionWithDate 方法并在 dateOfEvent 属性为 NSString 时检查日期是否已经存在。因为我需要在 TableView 中按升序日期排序,所以我将 dateOfEvent 更改为 NSDate 格式
要获取当前日期和时间,我将这段代码放在保存方法中:
Date *date = [NSEntityDescription insertNewObjectForEntityForName:@"Date" inManagedObjectContext:context];
date.dateOfEvent = [NSDate date];
transaction.dates = date;
这是给我当前的日期和时间。我想要的是让用户使用 UIDatePicker 选择日期以及选择的任何日期,以便将其保存为 Date 实体的 dateOfEvent 属性,然后我可以在 TableView 的部分中使用它。
最佳答案
要从 UIDatePicker
对象获取 NSDate
,请使用 UIDatePicket
date 属性。
日期
日期选择器显示的日期。
@property(nonatomic, retain) NSDate *date
讨论默认是创建 UIDatePicker 对象的日期。在模式 UIDatePickerModeCountDownTimer 中忽略日期;对于该模式,日期选择器从 0:00 开始。设置此属性不会通过将轮子旋转到新的日期和时间来为日期选择器设置动画;为此,您必须使用 setDate:animated: 方法。
检查苹果UIDatePicker文档
关于ios - 将核心数据属性从 NSString 更改为 NSDate 并使用日期选择器使此功能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311351/
我的应用程序中有两个 UIDatePicker 控件,一个配置了 UIDatePickerModeDate,另一个配置了 UIDatePickerModeTime。 我想配置一个 NSDate 对象,
我可以通过此代码获取 iPhone 的当前日期 NSDate *currentDate = [NSDate date]; NSDateFormatter *dateFormatter1 = [[NSD
我在 Swift 中有一个模型,它有一个名为 expirationDate 的 NSDate 字段,我想根据当前时间计算过期前的剩余小时数日期。 有没有一种简单的方法可以利用现有的 NSDate 功能
我将我的 NSDate 存储到一个文件中,该文件采用您在 NSDate 上调用描述时获得的国际格式。 但是,我不知道如何从字符串格式返回到 NSDate 对象。 NSDateFormatter 似乎仅
我有兴趣创建一种方法来查找当前日期是否落在任何给定日期的特定时间之间。这是一个调度程序,所以我想找到当前时间正在发生什么事件。每天都有相同的时间集:820-900、900-940、940-1020 等
我有一个约会时间: Friday, July 8, 2016 at 6:30:00 PM India Standard Time 我想要这样的约会时间: Friday, July 8, 2016 at
我有一个 NSDate 对象。假设它代表“1-10-2011” NSDate *date = [df dateFromString:@"2011-10-01 00:00:00"]; 由于我所在的时区,
我从 Django API 获取 NSString 2012-08-17T10:56:45.508205 作为时间。 我正在尝试使用以下代码将该字符串转换为 NSDate 对象: NSDateForm
我在获取一系列 NSDates 与另一个 NSDates 范围相交的天数时遇到问题。 场景 1: 主要范围:3月8日-6月8日 检查范围:4月8日-5月8日 那么相交的天数就是4月8日-5月8日的天数
我知道如何获取两个 NSDate 之间的差异,如下所示 NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:anyPr
我需要根据另一个 NSDate 获取一天中特定时间的 NSDate。例如,如果我有一个代表 2015 年 5 月 10 日已知时间的 NSDate,我需要能够获得一个代表 2015 年 5 月 10
升级到1.2后出现编译错误: NSDate?! is not convertible to NSDate 代码: let dateCreated = photoCommentObjects[index
这是我的代码。但是一个错误说,不能用类型的参数列表调用 dateComponent... let fromDate = NSDate(timeIntervalSince1970: TimeInter
给定一个引用日期,我需要找到下面的“星期三”。 需要说明的是,如果引用日期是星期二,那么它应该返回同一周的星期三。 如果引用日期是星期三或更晚,则需要返回从下周开始的下一个星期三。 重要的是它不会返回
我有 NSDate* day1 和 NSDate* day2。我如何通过只复制第 1 天的年/月/日和第 2 天的小时/分钟/秒来制作 NSDate* day3? 最佳答案 unsigned unit
我有两个 NSDate 对象,我想要两者之间的差异,结果应该再次是一个 NSDate 对象。知道如何实现这一目标吗? 在这里,我试图解决一个独特的问题,我必须找出耗时,然后本地化耗时。如果我在 NSD
我试图强制用户使用日期选择器选择 future 的日期。我显然使用了compare:方法,但是,当我执行以下代码时,即使它与[NSDate date]相同的日期,它也会告诉执行if语句。这是我的代码:
我有两个用户选择的日期:开始日期和结束日期。它们是 NSDate 实例,我必须将它们作为 NSNumber 的参数发送。如何以秒为单位将它们转换为 NSNumber? 最佳答案 使用下面的代码: N
我对将 NSTimeInterval 转换为 NSDate 感到困惑,我有两个日期要比较,一个来自服务器,另一个在本地, 在服务器案例中,我以时间间隔格式获取日期,因此我也必须对本地数据执行相同的操作
我有一个从服务器获取的字符串 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z"我通过这个 formate 将这个字符串转换成 NSDate。 class func convertUTCDat
我是一名优秀的程序员,十分优秀!