Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSDate比较的XLForm谓词_Objective C_Nsdate_Nspredicate_Xlform - Fatal编程技术网

Objective c NSDate比较的XLForm谓词

Objective c NSDate比较的XLForm谓词,objective-c,nsdate,nspredicate,xlform,Objective C,Nsdate,Nspredicate,Xlform,我正在使用内联日期选择器选择日期(dd/mm/yyyy)。这是生日,如果日期小于[NSDate date]减去18年,我必须显示一个表格行 我完全在努力使用谓词来显示或隐藏行:x 下面是我用来设置如果用户未满18岁,我需要隐藏的行的代码 XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:kAuthorization rowType:MyXLFormDescriptionTypeCheck title:

我正在使用内联日期选择器选择日期(dd/mm/yyyy)。这是生日,如果日期小于[NSDate date]减去18年,我必须显示一个表格行

我完全在努力使用谓词来显示或隐藏行:x

下面是我用来设置如果用户未满18岁,我需要隐藏的行的代码

XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:kAuthorization rowType:MyXLFormDescriptionTypeCheck title:@"Parents authorization"]];

row.hidden = [NSString stringWithFormat:@"$%@.value >= CAST(%f, 'NSDate')", kDateOfBirth, [eighteenYearsAgo timeIntervalSince1970]];

[section addFormRow:row];
当我运行应用程序时,断点会在xlformrowsdescriptor.m处停止执行(第342行)

其中: self是实际的行, _隐藏等于“$birth.value>=CAST(881190000.000000,“NSDate”)” 而self.sectionDescriptor.formDescriptor.allRowsByTag为零,因为self.sectionDescriptor也为零

下面是@catch块中NSException的描述:

无法在绑定{}中获取“生日”的值


感谢您的帮助\o

我找到了一个解决方案,绕过了这个问题

我重写了这个方法

- [id<XLFormDescriptorDelegate> formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)formRow oldValue:(id)oldValue newValue:(id)newValue];
-[id formRowDescriptorValueHasChanged:(XLFormRowDescriptor*)formRow oldValue:(id)oldValue newValue:(id)newValue];
因此,当行的值发生更改时,我会收到通知。我只是在这里进行比较,根据结果隐藏或显示我想要的行

如果有人被困在同一个问题上,我认为这个解决方案很好,安装起来不需要花费太多时间(不需要NSPredicate或regex技能,只需要一个重写方法),也不太脏(代码可读,解决方案不是什么大把戏):)