Простое приложение UIAlertView не работает на IOS 5.0.1 - PullRequest
0 голосов
/ 25 марта 2012

В настоящее время я использую Cycript, чтобы открыть окно предупреждения о трамплине, например:

#!/usr/bin/cycript -p SpringBoard
var message = [[UIAlertView alloc] init];
message.title = "Title";
message.message = "Message";
[message addButtonWithTitle:@"Dismiss"];

[message show];

Но я бы хотел уйти от этого метода, поскольку Cycript не предназначен для производства.

Используя теос, я сделал проект инструмента, и мой main.mm:

int main(int argc, char **argv, char **envp) {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        NSLog(@"Start");

        UIAlertView *alert = [[UIAlertView alloc] init];
        NSLog(@"1");
        [alert setTitle:@"Title"];
        NSLog(@"2");
        [alert setMessage:@"Message"];
        [alert addButtonWithTitle:@"Dismiss"];
        [alert show];
        [pool release];
        return 0;
}

Makefile - это:

include theos/makefiles/common.mk

TOOL_NAME = cmdWindow
cmdWindow_FILES = main.mm
cmdWindow_FRAMEWORKS = UIKit Foundation

include $(THEOS_MAKE_PATH)/tool.mk

он прекрасно компилируется, но когда я запускаю его на своем iphone, я вижу:

iPhone:/tmp root# ./cmdWindow 
2012-03-25 06:33:18.801 cmdWindow[2845:707] Start
2012-03-25 06:33:18.851 cmdWindow[2845:707] 1
Trace/BPT trap: 5

Любые идеи, почему это терпит крах? Это потому, что нет логики привязывать инструмент командной строки к трамплину (как ключ -p в cycript)?

Я пробовал и rpetrich, и свои собственные заголовки 5.0.1 в / opt / theos / include - такое же поведение.

1 Ответ

3 голосов
/ 26 марта 2012

Вы не можете показывать предупреждение или любой пользовательский интерфейс, пока у вас не будет запущен runloop и не будет загружена UIApplication. Выполните обе эти операции из приложения, надлежащим образом зарегистрированного и запущенного из SpringBoard, и ваше предупреждение отобразится.

Кроме того, SpringBoard может показывать предупреждение от вашего имени, используя семейство API CFUserNotification.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...