При добавлении SPView в существующий проект iOS отображается розовый экран (Sparrow Framework) - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь добавить некоторые эффекты частиц в свое приложение для 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);
}

Дополнительные странные признаки - то, что я создал UIViewв .xib файле и изменил его класс на SPView.Но когда я использую это представление, компилятор все равно распознает его как UIView.Это похоже на то, что xCode может видеть заголовочный файл, но компилятор почему-то не видит.Другая проблема заключается в том, что я пытался использовать метод 'SPImage * background = [SPImage imageWithContentsOfFile: @ "camera_test.png"];', но когда я запускаю его, он выдает эту ошибку reason: '+[NSBundle appBundle]: unrecognized selector sent to class 0x7a6890'. Что означает, что он не может найти категорию воробьяметод 'appBundle'.Но этот метод существует в исходном коде!и скомпилировать без проблем.Это просто сбой во время выполнения.

Я дважды проверил настройки сборки, и я думаю, что у меня все настроено правильно, например, «Другие флаги компоновщика» как -ObjC -load_all.Я понятия не имею, в чем проблема.

1 Ответ

1 голос
/ 27 февраля 2012

Я нашел решение. В «Настройках сборки» цели я должен установить -ObjC -all_load в «Другие флаги компоновщика» для ОБА колонок «Цель» и «Проект». Настройка для столбца Target была выбрана, поэтому я думаю, что ничего нет, но на самом деле в ней есть значение !. Я потратил день на просмотр каждой опции настроек сборки в проекте Sparrow 'AppScaffold' и обнаружил это непреднамеренно. Это очень сложно. Даже -ObjC -all_load установлено в Project, но не в Target, проект по-прежнему собирается просто отлично, но он не будет работать или даже падать во время выполнения.

«Другие флаги компоновщика», когда они НЕ выделены. 'Other Linker Flags' setting when NOT highlighted.

«Другие флаги компоновщика», если они выделены. Тьфу! В столбце target (AggScaffold) есть что-то! 'Other Linker Flags' setting when highlighted. ugh! There is something in target (AggScaffold) column!

Я предлагаю сотрудникам Sparrow Framework включить эту информацию в свое руководство. Отсутствие даже такой мелкой детали может привести к тому, что кто-то целый день ее исправит.

Надеюсь, это поможет.

PS. Ссылка на мой вопрос в форуме воробья: http://forum.sparrow -framework.org / topic / добавление-spview-to-a-uiview

...