首页 > ios开发中,应用被启动时某些方法被系统自动调用的次数

ios开发中,应用被启动时某些方法被系统自动调用的次数

如下代码中方法一 到 方法五,经测试发现 当应用启用时,方法一 被调用了2次,方法二 被调用了10次,方法三 被调用了20次,方法四 被调用了10次,方法五 被调用了5次,对于新手来说,这简直不能理解,望路过的大神指教一二!!!

//接口文件

#import <UIKit/UIKit.h>

#import <AudioToolbox/AudioToolbox.h> 

@interface ShawViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>

@property (weak, nonatomic) IBOutlet UIPickerView *picker;

@property (weak, nonatomic) IBOutlet UIImageView *image;

@property (weak, nonatomic) IBOutlet UIButton *startBn;

- (IBAction)clicked:(id)sender;

@end

//实现文件

#import "ShawViewController.h"

@implementation ShawViewController

UIImage *loseImage;

UIImage *winImage;

NSArray *images;

- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    loseImage = [UIImage imageNamed:@"lose-60.png"];

    winImage = [UIImage imageNamed:@"win-60.png"];

    UIImage *blue = [UIImage imageNamed:@"blue-60.png"];

    UIImage *red = [UIImage imageNamed:@"red-60.png"];

    UIImage *gray = [UIImage imageNamed:@"gray-60.png"];

    images = [NSArray arrayWithObjects:blue, red, gray, nil];

    self.picker.dataSource = self;

    self.picker.delegate = self;

}

- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

//方法一

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

    return 5;

}

//方法二

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

{

    return images.count;

}

#define kImageTag 1

//方法三

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

{

    if (view.tag != kImageTag) {

        view = [[UIImageView alloc] initWithImage:[images objectAtIndex:row]];

        view.tag = kImageTag;



        view.userInteractionEnabled = NO;

    }

    return view;

}

//方法四

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component

{

    return 40;

}

//方法五

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component

{

    return 40;

}

- (IBAction)clicked:(id)sender

{

    self.startBn.enabled = NO;

    self.image.image = nil;

    NSMutableDictionary *result = [[NSMutableDictionary alloc] initWithCapacity:6];

    NSURL *winSoundUrl = [[NSBundle mainBundle] URLForResource:@"crunch" withExtension:@"wav"];

    SystemSoundID soundID;

    AudioServicesCreateSystemSoundID((__bridge CFURLRef) (winSoundUrl), &soundID);



    AudioServicesPlayAlertSound(soundID);

    for (int i = 0; i < 5; i++) {

        NSUInteger selectedVal = arc4random() % images.count;

        [self.picker selectRow:selectedVal inComponent:i animated:YES];

        if ([result objectForKey:[NSNumber numberWithInt:selectedVal]]) {

            NSUInteger newCount = [[result objectForKey:[NSNumber numberWithInt:selectedVal]] integerValue];

            [result setObject:[NSNumber numberWithInt:(newCount + 1)] forKey:[NSNumber numberWithInt:selectedVal]];

        }

        else

        {

            [result setObject:[NSNumber numberWithInt:1] forKey:[NSNumber numberWithInt:selectedVal]];

        }



        NSUInteger maxOccurs = 1;

        for (NSNumber *num in [result allKeys]) {

            if ([[result objectForKey:num] integerValue] > maxOccurs)

                maxOccurs = [[result objectForKey:num] integerValue];

        }



        if (maxOccurs >= 3)

            [self performSelector:@selector(showWin) withObject:nil afterDelay:0.5];

        else

            [self performSelector:@selector(showLose) withObject:nil afterDelay:0.5];



    }

}

- (void)showWin

{

    NSURL *winSoundUrl = [[NSBundle mainBundle] URLForResource:@"win" withExtension:@"wav"];

    SystemSoundID soundId;

    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(winSoundUrl), &soundId);

    AudioServicesPlaySystemSound(soundId);

    self.image.image = winImage;

    self.startBn.enabled = YES;

}

- (void)showLose

{

    self.image.image = loseImage;

    self.startBn.enabled = YES;

}

@end
【热门文章】
【热门文章】