gpt4 book ai didi

ios - 创建动态 if 语句

转载 作者:行者123 更新时间:2023-11-28 18:19:54 26 4
gpt4 key购买 nike

我正在构建一个应用程序,遇到了一些我无法完全解决的问题。它的要点是我有一个允许用户关闭/打开过滤器的 View 。我目前将这些过滤器链接到一个名为 Filter 的 NSObject。过滤器对象具有以下属性:

@property (nonatomic, strong) NSString *activity;
@property (nonatomic, strong) NSString *mileage;
@property (nonatomic, assign) BOOL pets;
@property (nonatomic, assign) BOOL accessibility;
@property (nonatomic, assign) BOOL fee;

过滤器 View 如下所示:

enter image description here

然后我有包含以下属性的 Trail 对象:

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSMutableArray *activities;
@property (nonatomic, strong) NSString *miles;
@property (nonatomic, assign) BOOL pets;
@property (nonatomic, assign) BOOL accessibility;
@property (nonatomic, assign) BOOL fee;

我在以某种方式创建动态 if 语句时遇到问题,这样如果某些过滤器打开或不打开(比如事件、宠物、里程),那么 for 循环将遍历我所有的跟踪对象并比较它们的属性到选定的过滤器。如果 Trail 对象的过滤器(在此示例中为事件、宠物和里程)与过滤器对象不匹配,则它们不会添加到新数组中。所以我无法解决的问题是创建一个仅包含已打开的过滤器的 if 语句:

if( (selectedFilter1 == trailProperty1) && (selectedFilter2 == trailProperty2) etc...)

最佳答案

如果你有 5 个额外的 bool 值,你有开关的状态并且有类似这样的东西,那将是最好的

BOOL match = true;
if (filterOn1)
{
match &= (selectedFilter1 == trailProperty1);
}
if (filterOn2)
{
match &= (selectedFilter2 == trailProperty2);
}
...

我假设 trailPropertyX 是迭代循环中当前项目的值

关于ios - 创建动态 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com