I've been practicing blocks a bit and would like some help converting this one from Objective C to Swift.
The below Objective C code works just fine... logging a random number every second
- (void)viewDidLoad {
[super viewDidLoad];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(returnNumberMethod) userInfo:nil repeats:YES];
}
- (void)returnNumberMethod {
[self returnRandomInt:^(NSInteger randNum) {
NSLog(@"%ld", (long)randNum);
}];
}
- (void)returnRandomInt:(void (^)(NSInteger randNum)) completion {
NSInteger number = arc4random_uniform(100);
completion(number);
}
My swift attempt, but it didn't work, I know the syntax is wrong but would someone be able to help with translating the above code? Thank you!
override func viewDidLoad() {
super.viewDidLoad()
let timer = NSTimer(timeInterval: 1, target: self, selector: "getRandomNumber", userInfo: nil, repeats: true)
}
//block practice
func getRandomNumber() {
self.randomNumber { (number) -> NSInteger in
let numberString = NSString(format: "%ld", number)
print(numberString)
}
}
func randomNumber(completion: (number: NSInteger) -> NSInteger) {
let numero = arc4random_uniform(100)
}