我正在尝试为我的iPhone应用程序添加一些粒子效果。我的项目是使用传统的UIKit创建的。我没有使用AppScaffold模板,所以我必须手动添加和设置麻雀。我做了#import "Sparrow.h"
,它构建得很好。
问题是当我尝试添加SPView时。它只显示一个空白的粉红色视图。我不知道我做错了什么。这是我的代码片段:
Game.h
@implementation Game
- (id)initWithWidth:(float)width height:(float)height
{
if (self = [super initWithWidth:width height:height])
{
SPQuad *quad = [SPQuad quadWithWidth:100 height:100];
quad.color = 0xff0000;
quad.x = 50;
quad.y = 50;
[self addChild:quad];
}
return self;
}
@end
在viewController的viewDidload中......
- (void)viewDidLoad {
[super viewDidLoad];
// sparrow
SP_CREATE_POOL(pool);
[SPStage setSupportHighResolutions:YES];
SPView *spv = [[SPView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:spv];
[spv release];
spv.frameRate = 30;
Game *game = [[Game alloc] init];
spv.stage = game;
[game release];
[spv start];
SP_RELEASE_POOL(pool);
}
其他奇怪的症状是我在.xib文件中创建了一个UIView并将其更改为SPView。但是当我使用该视图时,编译器仍然将其识别为UIView。这就像xCode可以看到头文件,但编译器不知道如何。另一个问题是我尝试使用方法'SPImage * background = [SPImage imageWithContentsOfFile:@“camera_test.png”];',但是当我运行它时,它会出现此错误reason: '+[NSBundle appBundle]: unrecognized selector sent to class 0x7a6890'.
这意味着它无法找到麻雀类别方法'appBundle'。但是这个方法在源代码中确实存在!它编译没有问题。它只是在运行时崩溃。
我仔细检查了构建设置,我认为我已正确设置所有内容,例如“其他链接器标志”为-ObjC -load_all
。我不知道这是什么问题。
答案 0 :(得分:1)
我找到了解决方案。在目标的“构建设置”中,我必须在“其他链接器标志”中为“BOTH目标”和“项目”列设置-ObjC -all_load
。目标列的设置是白色的,所以我认为什么都没有,但实际上它实际上有一个价值!我花了一天的时间浏览Sparrow'AppScaffold'项目中的每个构建设置选项,并无意中发现了这一点。这非常棘手。甚至-ObjC -all_load
在Project中设置但在Target中没有设置,项目仍然可以正常构建,但它不会工作甚至在运行时崩溃。
'其他链接标记'未突出显示时。
突出显示'其他链接标记'。啊!目标(AggScaffold)列中有一些东西!
我建议麻雀框架的工作人员在他们的教程中包含这些信息。即使是像这样的小细节,也可能会让某人整天修理它。
希望这有帮助。
PS。在麻雀论坛中链接到我的这个问题:http://forum.sparrow-framework.org/topic/adding-spview-to-a-uiview