【问题标题】:performing function based on string value基于字符串值执行功能
【发布时间】:2017-03-15 17:05:22
【问题描述】:

我是 Objective-c 的新手。我有一个包含 0、13、5 之类的值的字符串。现在我正在尝试通过使用该值来执行各种功能。

这是我的代码。

NSString*  statusfield = [NSString stringWithFormat:@"%@",[tmpDict objectForKey:@"StatusId"]];
if([statusfield isEqualToString:@"13"])
{
    [cell.mySegmentedControl setTitle:@"SEND TO ADMIN" forSegmentAtIndex:0];
    [cell.mySegmentedControl setTitle:@"EVALUATE" forSegmentAtIndex:1];
}
if([statusfield isEqualToString:@"5"])
{
   [cell.mySegmentedControl setEnabled:NO forSegmentAtIndex:0];
   [cell.mySegmentedControl setEnabled:NO forSegmentAtIndex:1];
}

if([statusfield  isEqualToString: @"1"])
{
    [cell.mySegmentedControl setTitle:@"ACCEPT" forSegmentAtIndex:0];
    [cell.mySegmentedControl setTitle:@"REJECT" forSegmentAtIndex:1];
}
if([statusfield isEqualToString:@"3"])
{
    [cell.mySegmentedControl setTitle:@"VIEW" forSegmentAtIndex:0];
    [cell.mySegmentedControl setSelectedSegmentIndex:UISegmentedControlNoSegment];
}

第一个字符串和最后一个字符串包含 3。因此它在我的分段控件中显示重复项。我想检查一下具体情况。

任何帮助将不胜感激。

【问题讨论】:

  • 你也可以分享截图(我还没有投票给你)。
  • 不需要附上截图。我要求根据字符串值检查条件的逻辑。
  • " 第一个字符串和最后一个字符串包含 3":应该没关系,因为您使用 isEqualToString: 而不是 containsString:。此外,您可以使用开关盒:NSUInteger status = [[tmpDict objectForKey:@"StatusId"] integerValue]; switch(status):{case 3:{//Do you stuff}break; case 5:{//Do you stuff} break;} etc.
  • 在您的情况下,使用else ifswitch 来验证众多代码块中的一个,仅使用if 在匹配后检查每个条件。
  • @vaibhav else/if 在这种情况下确实比if 更好(优化),但由于它使用的是isEqualToString:,所以如果测试不应该输入两个:只有一个或零。跨度>

标签: ios objective-c nsstring uisegmentedcontrol


【解决方案1】:

以下对我有用:

NSString*  statusfield = @"3";

    if([statusfield isEqualToString:@"13"])
    {
        NSLog(@"13 executed");
    }
    if([statusfield isEqualToString:@"5"])
    {
        NSLog(@"5 executed");
    }

    if([statusfield  isEqualToString: @"1"])
    {
      NSLog(@"1 executed");
    }
    if([statusfield isEqualToString:@"3"])
    {
        NSLog(@"3 executed");
    }

我得到如下日志

//  3 executed 

【讨论】:

  • 我认为只使用ifisEqualToString 方法的结果是相同的,但这里使用else if 执行差异?
猜你喜欢
  • 2018-11-05
  • 1970-01-01
  • 2013-07-24
  • 2020-06-26
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多