0

我的 iPhone 游戏有很多重复代码(移动图片、添加分数),这使得在每次单击按钮时重复相同的代码时它太大了。

这是 ViewController.m

Viewcontroller.h 和 ViewController.m 之间的接口和实现是正确的 - 运行良好

- (IBAction)button_xx_pressed:(id)sender
{

    //trying to call the outsourced code
    [self this_is_a_test];  

}

所以我尝试制作外包的重复代码。我不需要返回结果或其他东西的方法或函数。只需执行一些操作,例如 NSLog 输出...(只是一个测试)。或者在原始版本中 - 移动图片,添加分数和其他东西。

这是外包.h

#import "Outsourcing.m"

@end

这是外包.m

#import "Outsourcing.h"


- (void)this_is_a_test {

    int test_variable = 999;

    NSLog(@"Give me a test output: = %i", test_variable);

}


@end

这将使我的游戏大小缩小 80% 以上(非常重要)。我有数以千计的重复编程行,目前,我不知道如何处理它。

实际错误信息:

Outsourcing.h => 缺少方法声明的上下文

Outsourcing.m => 方法声明缺少上下文 => @end 必须出现在 Objective-C 上下文中

有人对我有任何提示吗?非常感谢...我的游戏其余部分都很好...一切都可以正常运行。我很高兴我让它运行起来(但游戏大小是个问题)。1 或 2 个月前,我以前从未使用过 xcode。我刚刚在VBA方面有一些经验。和我想要的类似。

=> 调用 this_is_a_test

=> 私有子 this_is_a_test()

但似乎我太愚蠢了:-(

谢谢

4

2 回答 2

1
@interface Outsourcing : NSObject

- (void)this_is_a_test;

@end

#import "Outsourcing.h"

@implementation
- (void)this_is_a_test {

    int test_variable = 999;

    NSLog(@"Give me a test output: = %d", test_variable);
}
@end

你在 ViewController 中这样称呼它:

#import "Outsourcing.h"

...

- (IBAction)button_xx_pressed:(id)sender
{
    Outsourcing *outsourcing = [[[Outsourcing alloc] init] autorelease];

    //trying to call the outsourced code
    [outsourcing this_is_a_test];  
}
于 2012-10-14T15:48:08.420 回答
0

你不见了

@interface Outsourcing : NSObject

在您的头文件(Outsourcing.h)中。消除:

#import "Outsourcing.m"

您导入头文件,而不是源文件....您还缺少:

@implementation Outsourcing

在您的 .m 文件中,就在导入声明之后。

于 2012-10-14T15:49:14.880 回答