我正在尝试NSLog
ViewController
上每个标签内@ {1}的数量。storyboard
。我在IBOutlet
上创建了3个标签,然后连接了NSMutableArray
。我将每个标签添加到NScountedSet
并分配initWithObjects。我手动将每个标签的文本设置为1,2和3。
现在我的问题。
我想使用@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"] );
}
来计算标签数组中1的数量。如果条件满足,则NSLog一些文本。
我创建了一个简单版本的代码来突出问题。
substring()
我得到3个警告......两个黄色和一个红色。 我的老师告诉我这不会工作,还有其他方法可以做到。我已经做到了另一种方式。我真的很困惑为什么这不起作用。我只在班上的第二周。
有人可以解释为什么这不起作用以及我如何才能使它发挥作用? 谢谢
答案 0 :(得分:1)
显然,你有几个问题。
[self.l1.text isEqualToString:@"1"];
这样的行没有做任何事情。您可以比较标签的文字,但不要检查测试结果。self.dice
数组。if
行有语法错误。这里有一些固定代码:
@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);
}
}