编辑添加:在底部解决,见 main.m
我想在 Objective-C 中尝试 FizzBuzz 挑战,因为我正在自学这门语言。我很容易在 main.m 中对其进行编码,但我想知道是否有办法通过头文件和实现文件对其进行编码。对于我的 main.m 版本,我有:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
NSLog(@"FizzBuzz");
}
else if (i % 3 == 0) {
NSLog(@"Fizz");
}
else if (i % 5 == 0) {
NSLog(@"Buzz");
}
else {
NSLog(@"%d", i);
}
}
}
return 0;
}
我想通过头文件和实现文件打印解决方案,但我不确定如何调用 main.m 中的方法(只想以各种方式打印解决方案以练习 Objective-c 的语法和调用规则)。
对于 .h、.m 和 main.m,到目前为止我有这个:
。H
#import <Foundation/Foundation.h>
@interface FizzBuzz : NSObject
-(void)fizzBuzzCalc;
@end
.m
#import "FizzBuzz.h"
@implementation FizzBuzz
-(void)fizzBuzzCalc
{
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
NSLog(@"FizzBuzz");
}
else if (i % 3 == 0) {
NSLog(@"Fizz");
}
else if (i % 5 == 0) {
NSLog(@"Buzz");
}
else {
NSLog(@"%d", i);
}
}
}
@end
主文件
#import <Foundation/Foundation.h>
#import "FizzBuzz.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
FizzBuzz *test = [FizzBuzz new];
[test fizzBuzzCalc];
NSLog(@"%@", test);
}
return 0;
}
不知道如何调用 main.m 中的 fizzBuzz 方法,这是我的问题。
我是 Objective-C 的新手,所以这似乎是一个愚蠢的问题,但我仍在学习。
编辑以添加讨论
不知道为什么,但我删除了 main.m 中的实例/方法调用代码并以相同的方式重写它,Xcode 停止抛出错误。我不知道为什么,但我注意到 Xcode 有时会无缘无故地抛出错误,如果您只是删除代码并将其重新写入,Xcode 将毫无问题地读取它。