【问题标题】:NSCountedSet in an if statementif 语句中的 NSCountedSet
【发布时间】:2016-01-23 04:29:41
【问题描述】:

我正在尝试NSLog 计算我的ViewController 上每个标签内@"1" 的数量。我在storyboard 上创建了 3 个标签,然后连接了IBOutlet。我将这些标签中的每一个都添加到NSMutableArray 和alloc initWithObjects 中。我手动将每个标签的文本设置为 1、2 和 3。

现在谈谈我的问题。

我想使用 NScountedSet 来计算标签数组中 1 的数量。如果满足条件,则 NSLog 一些文本。

我创建了一个简单版本的代码来突出问题。

@property (weak, nonatomic) IBOutlet UILabel *l1;
@property (weak, nonatomic) IBOutlet UILabel *l2;
@property (weak, nonatomic) IBOutlet UILabel *l3;



@property NSMutableArray *dice;

@end

@implementation MainViewController

- (void)viewDidLoad {
[super viewDidLoad];

[self.l1.text isEqualToString:@"1"];
[self.l2.text isEqualToString:@"2"];
[self.l3.text isEqualToString:@"3"];


self.dice = [[NSMutableArray alloc] initWithObjects: self.l1, self.l2,  
self.l3, nil];




NSCountedSet *setOfNumbers = [NSCountedSet setWithObject:self.dice];


if ([setOfNumbers countForObject: @"1"  == 1]) {
    NSLog(@"Count of 1 in array is %lu", (unsigned long) [setOfNumbers  
countForObject:@"1"] );
}

我收到 3 个警告...两个黄色和 1 个红色。 我的老师告诉我这行不通,还有其他方法可以做到。而我已经以另一种方式做到了。我真的很困惑为什么这不起作用。我只在我班的第 2 周。

有人可以解释为什么这不起作用以及如何使它起作用吗? 谢谢

【问题讨论】:

  • 顺便说一句 - 当您发布有关代码问题的问题时,请指出哪些行给您带来问题并发布实际的错误/警告消息。

标签: ios objective-c nscountedset


【解决方案1】:

显然,你有几个问题。

  1. [self.l1.text isEqualToString:@"1"]; 之类的行不执行任何操作。您比较标签的文本,但不检查测试结果。
  2. 您将标签而不是标签的文本添加到 self.dice 数组中。
  3. if 行有语法错误。
  4. 您使用数组而不是数组中的对象创建计数集。
  5. 将计数集中的计数存储在一个变量中,这样您就不会计算两次。

这里有一些固定的代码:

@implementation MainViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.dice = [[NSMutableArray alloc] initWithObjects:self.l1.text, self.l2.text, self.l3.text, nil];

    NSCountedSet *setOfNumbers = [NSCountedSet setWithArray:self.dice];

    NSUInteger count = [setOfNumbers countForObject: @"1"];
    if (count == 1) {
        NSLog(@"Count of 1 in array is %lu", (unsigned long)count);
    }
}

【讨论】:

  • 谢谢你,我现在意识到我的错误了!
猜你喜欢
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
相关资源
最近更新 更多