0

私は Objective-C を初めて使用し、少しずつ学習しています。それについて質問があります。

たとえば、数値の増減に関する iPhone アプリを作成しましたが、デフォルトの数値は 0 に設定されています。上、下、または再起動ボタンを押すと、さまざまなコマンド オプションが表示されます。たとえば、ifステートメントを実行したいと思います。ラベル番号 (0) が 5 (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.
}
4

3 に答える 3

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];
}

次に、名前がすべて間違っているため、命名規則について学びます (文字の大文字化)。

于 2013-07-23T19:58:11.460 に答える
0

このコードを見てください。これは、メソッド内で戻り値を使用する方法の良い例です。私のメソッドが呼び出されます-(BOOL)isNumberGreaterThanOrEqualToFive;

-、これがインスタンス メソッドであることを示します。(BOOL) は、このメソッドが BOOL (YES/NO) を返すことを示します。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 とプログラミング全般について学ぶべきもう 1 つのことは、因数分解と呼ばれるものです。因数分解では、関連のないタスクを、より小さな個別の関連タスクに分割します。たとえば、メソッド内に 1 つの大きなコード ブロックを配置する代わりに、それぞれが 1 つの特定のタスクを完了する複数のメソッドを作成できます。この方法で AlertView を表示するコードを分割できます。例えば:

-(void)showAlertViewWithMessage:(NSString *)messageText {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:messageText delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alert show];
}
于 2013-07-23T21:01:29.760 に答える