如何在Objective-C中为FizzBuzz编写头文件和实现文件?
编辑以添加:在底部求解,请参见main.m如何在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(
#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;
}