所以我现在正在制作卡路里追踪器。在这个应用程序中,您输入您最近吃的饭,以及该餐中的卡路里量。然后按“添加”按钮。此按钮将数据保存到名为HistoryTableViewController的TableView中。要检查此人是否将文本字段留空,我有3“if statement”。一个看起来像这样:
if ([[self.amountText.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] < 1)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning!" message:@"You have not entered the amount of Calories!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[amountHistory removeObjectAtIndex:0];
}
我知道有一行代码是错误的
[amountHistory removeObjectAtIndex:0];
我不一定要删除tableview上的第一个对象,我只是想确保该项没有被添加。
提前致谢。
编辑:
我在if语句的顶部向数组中添加了一个对象:
total+= self.amountText.text.intValue;
self.totalLabel.text = [NSString stringWithFormat:@"%d", total];
NSNumber *calorieNumber = [NSNumber numberWithInt:self.amountText.text.intValue];
NSString *foodString = nameOfTheFood.text;
NSString *historyString = [NSString stringWithFormat:@"%@ Calories in %@", calorieNumber, foodString];
[amountHistory addObject:historyString];
答案 0 :(得分:1)
你的主题的答案:
How to remove a specific object from an array
是
[array removeObject:obj];
注意,这会使用对象上的isEqual
消息来确定相等性。如果您希望特定对象相等,请改用removeObjectIdenticalTo:
。
答案 1 :(得分:1)
听起来你是从错误的角度思考它。
除了将项目添加到数组中,然后将其删除(如果它无效),您应确保仅在项目有效时添加该项目。
因此,在您的方法中,您只需在所有验证通过后在最后添加项目。如果任何验证失败,您可以在return
语句中添加早期if
,这样就无法获得将项添加到数组的代码
答案 2 :(得分:0)
如果您要删除数组中的最后一项,请使用:
[amountHistory removeLastObject];
但是如果您的问题是您不想在数组中添加空白项目,那么在添加它们之前为什么不检查它们是否为空?
答案 3 :(得分:-1)
如果您使用的是NSMutableArray,则只能从数组中删除对象。阅读NSMutableArray Class Reference