ios - 将 SPView 添加到现有 iOS 项目显示粉红色屏幕(Sparrow Framework)

标签 ios sparrow-framework

我正在尝试向我的 iPhone 应用程序添加一些粒子效果。我的项目是使用传统的 UIKit 创建的。我没有使用 AppScaffold 模板,因此我必须手动添加和设置 sparrow。我做了#import "Sparrow.h",并且构建得很好。

问题是当我尝试添加 SPView 时。它只显示一个空白的粉红色 View 。我不知道我做错了什么。这是我的代码片段:

游戏.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。但是当我使用该 View 时,编译器仍然将其识别为 UIView。就像 xCode 可以看到头文件,但编译器却看不到一样。另一个问题是我尝试使用方法 'SPImage *background = [SPImage imageWithContentsOfFile:@"camera_test.png"];',但是当我运行它时,它给出了此错误 reason: '+[NSBundle appBundle]:无法识别的选择器发送到类 0x7a6890'。 这意味着它找不到麻雀类别方法'appBundle'。但这个方法在源代码中确实存在!并且编译没有问题。它只是在运行时崩溃。

我仔细检查了build设置,我认为所有设置都正确,例如“其他链接器标志”为 -ObjC -load_all。我不知道出了什么问题。

最佳答案

我找到了解决方案。在目标的“build设置”中,我必须在“其他链接器标志”中为目标和项目列设置 -ObjC -all_load。目标列的设置是白色的,所以我认为什么都没有,但实际上它确实有一个值!我花了一天时间检查 Sparrow 'AppScaffold' 项目中的每个build设置选项,无意中发现了这一点。这非常棘手。即使 -ObjC -all_load 在 Project 中设置,但不在 Target 中设置,项目仍然可以正常构建,但在运行时将无法工作甚至崩溃。

未突出显示时的“其他链接器标志”。 'Other Linker Flags' setting when NOT highlighted.

“其他链接器标志”突出显示。啊!目标(AggScaffold)列中有东西! 'Other Linker Flags' setting when highlighted. ugh! There is something in target (AggScaffold) column!

我建议 Sparrow 框架工作人员将此信息包含在他们的教程中。即使错过这样一个小细节,也可能会导致有人花一整天的时间来修复它。

希望这对您有所帮助。

PS。链接到我在麻雀论坛中的这个问题:http://forum.sparrow-framework.org/topic/adding-spview-to-a-uiview

关于ios - 将 SPView 添加到现有 iOS 项目显示粉红色屏幕(Sparrow Framework),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462259/

相关文章:

ios - 在 Xcode 4.3.3 中重命名 .xib 文件是正确的方法吗?

ios - 无法发现服务

objective-c - IOS Sparrow 框架 : how to prevent double touch

iphone - Objective-c -> iPhone 设计 : delayed action

ios - obj-c 中指针返回 nil

ios - Objective-C 更改 Sprite 表 - 麻雀

ios - 如何使用带有 HTTPS 和自签名服务器证书的 AVPlayer?

ios - ipod 中的 Collectionview 问题

ios - 在 UITableView 上激活 Speech to Text

objective-c - "Cannot find interface declaration for NSObject"?