0

iOSOpenDev を使用して Logos Tweak を作成し、acknowledgeIncomingMessageWithId:別のアプリにCTMessageCenter通知を送信したいNSNotificationCenterのですが、機能しません。NSNotificationCenter異なるアプリ間で動作できると思います。NSNotificationCenter最初に微調整をテストしようとしました。それが私が以下にしたことです:

%hook CTMessageCenter

-(void)acknowledgeIncomingMessageWithId:(unsigned int)anId {
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(doingSMS) 
                                                     name:@"SMSComing" 
                                                   object:nil];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"SMSComing" object:nil];
    }

    %orig;
}

- (void)doingSMS{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"短信消息传送成功" 
                                                    message:@"来短信啦"
                                                   delegate:nil 
                                          cancelButtonTitle:@"Good" 
                                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

%end

しかし、うまくいきません。また、UIAlertView が表示されません。誰が理由を教えてくれますか?

4

2 に答える 2

1

アプリ間で通知を機能させるには:

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), 
                                NULL, 
                                doingSMS,
                                CFSTR("com.your.company.SMSComing"), 
                                NULL, 
                                CFNotificationSuspensionBehaviorCoalesce);

その後

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), 
                                     CFSTR("com.your.company.SMSComing"), 
                                     NULL, 
                                     NULL, 
                                     TRUE);

(プレフィックスなし) のような通知名"SMSComing"は問題が発生しやすいことに注意してください。

于 2012-12-21T07:15:05.167 に答える
0

iOSOpenDevで作業していた微調整でUIAlertViewsが表示されないという問題がありました。
UIAlertViewのデリゲートをに設定する必要があることに気付きましたself。なんらかの理由で、デリゲートをnilUIAlertViewとして設定すると、表示されませんでした。

于 2013-01-12T01:14:48.100 に答える