我是Objective-C的新手并且正在逐步学习它,我对此有疑问。
例如,我制作了一个关于增加或减少数字的iPhone应用程序,默认数字设置为0.通过按向上,向下或重新启动按钮,您可以使用不同的命令选项。我想发挥if声明,例如。当标签号(0)等于五(5)有一个弹出框,或一个文字说“你已达到数字5”;这只是为了学习并能够在未来的应用或游戏中实现这一点。
ViewController.h
#import <UIKit/UIKit.h>
int Number;
@interface ViewController : UIViewController {
IBOutlet UILabel *Count;
}
- (IBAction)Up:(id)sender;
- (IBAction)Down:(id)sender;
- (IBAction)Restart:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (IBAction)Up:(id)sender {
Number = Number + 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
}
- (IBAction)Down:(id)sender {
Number = Number - 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
}
- (IBAction)Restart:(id)sender {
Number = 0;
Count.text = [NSString stringWithFormat:@"%i", Number];
}
- (void)viewDidLoad {
Number = 0;
Count.text = [NSString stringWithFormat:@"%i", Number];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
答案 0 :(得分:0)
您可以添加方法:
- (void)checkNumber {
if (Number == 5) {
// show the alert
}
}
然后在你的代码中:
-(IBAction)Up:(id)sender {
Number = Number + 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
[self checkNumber];
}
-(IBAction)Down:(id)sender {
Number = Number - 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
[self checkNumber];
}
然后,了解命名约定,因为你的名字都错了(字母大写)。
答案 1 :(得分:0)
您只会在Up
方法上点击5,因此请检查您的值。如果有人试图超过5,则显示UIAlertView。
- (IBAction)Up:(id)sender{
if (Number >= 5) {
UIAlertView *alert = [[UIAlertView alloc ] initWithTitle:@"Sorry!" message:@"You can't go over five." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
else {
Number = Number + 1;
Count.text = [NSString stringWithFormat:@"%i", Number];
}
}
我正在使用UIAlertView在此处显示消息,但您可以使用UILabel或其他内容。
关于Objective-C约定的几点建议:
方法使用驼峰案例,并具有描述性名称。而不是Up
,请使用incrementTestValue
。
变量名也使用驼峰案例。不是Number
和Count
,而是分别使用number
和countLabel
。使用大写使它看起来像一个类名。
答案 2 :(得分:0)
看看这段代码。这将是如何在方法中使用返回值的一个很好的示例。我的方法叫做-(BOOL)isNumberGreaterThanOrEqualToFive;
-
表示这是一个实例方法。 (BOOL)表示此方法返回BOOL(是/否)。 isNumberGreaterThanOrEqualToFive
是方法的名称。它像这样使用
BOOL value = [self isNumberGreaterThanOrEqualToFive];
//value will either be YES or NO
看看
-(BOOL)isNumberGreaterThanOrEqualToFive {
if (Number >= 5) {
return YES;
}
return NO;
}
-(IBAction)Up:(id)sender {
if ([self isNumberGreaterThanOrEqualToFive]) {
NSLog(@"Number is greater than or equal to 5");
[self showAlertViewWithMessage:@"Number is 5 or more!"];
} else {
Number = Number + 1;
}
}
关于Obj-C和一般编程的另一件事是称为分解,即将不相关的任务拆分为更小的更离散的相关任务。例如,您可以创建多个方法来完成一个特定任务,而不是在方法中包含一大块代码。您可以通过这种方式拆分显示AlertView的代码。例如:
-(void)showAlertViewWithMessage:(NSString *)messageText {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:messageText delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
}