0

昨日、Sparrow メール アプリをダウンロードしましたが、起動後すぐにクラッシュします。

次のクラッシュ ログが生成されます。

Incident Identifier: [TODO]
CrashReporter Key:   [TODO]
Hardware Model:      iPhone4,1
Process:         Sparrow [64701]
Path:            /var/mobile/Applications/2D0B2A21-4BE0-4A1E-9119-B16FAA3A1572/Sparrow.app/Sparrow
Identifier:      com.sparrowmailapp.iphoneapp
Version:         507.54
Code Type:       ARM
Parent Process:  launchd [1]

Date/Time:       2013-01-14 23:57:46 +0000
OS Version:      iPhone OS 5.0.1 (9A406)
Report Version:  104

Exception Type:  SIGABRT
Exception Codes: #0 at 0x305e132c
Crashed Thread:  0

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[UINavigationBar setShadowImage:]: unrecognized selector sent to instance 0x9b1e70'

問題は、iOS 5 には存在しない UINavigationBar のプロパティ「shadowImage」です。

現在、クラッシュを回避するためにモバイル基板アドオンを構築しようとしています。不足しているプロパティを上書きして次のコードで UINavigationBar に追加します。

#import <Foundation/Foundation.h>

@interface UINavigationBar(MyNavigationBar)
@property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;
@end

%hook UINavigationBar

- (void)setShadowImage:(UIImage *)shadowImage forToolbarPosition:(id)topOrBottom {
    %log;
    //%orig;
}


- (void)setShadowImage:(UIImage *)shadowImage {
    %log;
    //%orig;
}

%end;

shadowImage または UI_APPEARANCE_SELECTOR を正しく設定する方法がわかりません。

何か案は?ありがとう

4

1 に答える 1

0

なんてこった、これらのメソッドはshadowImageの通常のセッター/ゲッターでなければなりません。

問題は解決しました。

于 2013-01-15T17:15:45.030 に答える