如何在Objective-C中为FizzBuzz编写头文件和实现文件?

如何在Objective-C中为FizzBuzz编写头文件和实现文件?,objective-c,header-files,main,fizzbuzz,Objective C,Header Files,Main,Fizzbuzz,编辑以添加:在底部求解,请参见main.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(

编辑以添加:在底部求解,请参见main.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;
}
我想尝试一下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;
}
#导入
int main(int argc,const char*argv[]{
@自动释放池{

对于(inti=1;iThx到@freeinkname和@Wongzigii指出代码中的一些简单错误,我能够确定,为了在main中调用该方法,我只需编写以下代码:

int main(int argc, const char * argv[]) {
@autoreleasepool {

    FizzBuzz *test = [FizzBuzz new];
    [test fizzBuzzCalc];

    NSLog(@"%@", test);
}
return 0;
}
我之所以想使用.h和.m文件重写解决方案,是因为在main.m中编写方法不是objective-c开发中的最佳实践,所以我认为这将是一个很好的练习


再次感谢!

为什么不想在*.m文件中使用NSLog?stringWithFormat将如何引发一个意大利面代码?NSLog已经在我的.m文件中实现了。我只需将我的main.m复制并粘贴到我的.m文件中,作为
-*(void)FizzBuzz{}
method。我只是不知道如何在main.m中使用它。这正是我想弄明白的。只是寻找不同的方法来实现解决方案。
stringWithFormat
因为这会毫无理由地冗长,这是我要说的。我知道有一种更简单的方法,但我不确定如何实现它,关于obj-c的语法。嗯,你知道吗拥有一个声明
FizzBuzzz
方法的类。您可以从main.m调用它,不是吗?类似于
void main(){MyClass*fizzBuzzInstance=[MyClass new];[fizzBuzzInstance FizzBuzz];返回0;}
我添加了更多的代码以澄清问题。我不知道如何在main.m中调用该方法。我尝试了一些与您发布的内容类似的东西,但main.m声明该类和FizzBuzz方法未声明。是否导入了.h文件?在
main.m
中添加这一行:
\import:“FizzBuzz.h”
或您指定的.h文件。
int main(int argc, const char * argv[]) {
@autoreleasepool {

    FizzBuzz *test = [FizzBuzz new];
    [test fizzBuzzCalc];

    NSLog(@"%@", test);
}
return 0;
}