2014-01-02 3 views
0

Я пытаюсь использовать Теос, чтобы подключить и зафиксировать имена остановленных аварийных сигналов.Как подключить функцию к iOS-сигналам?

Я сделал это:

// Logos by Dustin Howett 
// See http://iphonedevwiki.net/index.php/Logos 
//#import <SpringBoard/SpringBoard.h> 
#import <MobileTimer/AlarmManager.h> 
//#import <SpringBoard/SBApplicationIcon.h> 
#import <UIKit/UIKit.h> 
//#import <SpringBoard/SBRemoteNotificationEnableSystemwideAlert.h> 

%hook AlarmManager 

- (void)handleAlarm:(id)arg1 stoppedUsingSong:(id)arg2 { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ALARM!!!!" message:@"HELLO!!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    %orig(arg1,arg2); 
} 
%end 

Проблема заключается в том, что я никогда не увидеть alertbox. У вас есть идеи, почему это так?

ответ

0

После [alert show]; поставил [alert release]; Эта:

%hook AlarmManager 
    - (void)handleAlarm:(id)arg1 stoppedUsingSong:(id)arg2 { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ALARM!!!!" message:@"HELLO!!!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
    %orig(arg1,arg2); 
} 
%end 
+0

Так что это означает, что, когда я использую Логос есть не ARC поддержки? Также я не могу проверить код прямо сейчас. Я сделаю это сегодня и отчитаюсь. Вы уверены, что это правильный метод для подключения, потому что я попробовал его с NSLog вместо UIAlertView и ничего не было помещено в консоль? –

+0

Тогда сигнал тревоги не был вызван. Вы уверены, что это arg1 arg2, а не fp8 fp12 (я никогда не видел arg1 arg2 для любого сбрасываемого заголовка, возможно, я просто их не заметил). Попробуйте вызвать метод manualy из applicationDidBecome и посмотреть журналы – Cydie

+0

Насколько я понял, имена аргументов не имеют значения, потому что я ссылаюсь на них при переходе к исходному методу% orig. Я исправлю это? –

Смежные вопросы