0

BugSense を Monotouch にバインドしようとしています。しかし、私にはいくつか問題があります。ここで誰かが私のバインディングをチェックしてくれるか聞いてみますか?

BugSense ヘッダーは次のようになります。

#define BUGSENSE_LOG(__EXCEPTION, __TAG) [BugSenseCrashController logException:__EXCEPTION withTag:__TAG]

OBJC_EXPORT @interface BugSenseCrashController : NSObject <UIAlertViewDelegate>

+ (BugSenseCrashController *) sharedInstanceWithBugSenseAPIKey:(NSString *)APIKey;

+ (BugSenseCrashController *) sharedInstanceWithBugSenseAPIKey:(NSString *)APIKey 
                                                userDictionary:(NSDictionary *)userDictionary;

+ (BugSenseCrashController *) sharedInstanceWithBugSenseAPIKey:(NSString *)APIKey 
                                                userDictionary:(NSDictionary *)userDictionary
                                               sendImmediately:(BOOL)immediately;

+ (BOOL) logException:(NSException *)exception withTag:(NSString *)tag;

@end

次に、バインディング プロジェクトを追加し、ApiDefinition.cs に次のように記述しました。

[BaseType (typeof (NSObject))]
interface  BugSenseCrashController 
{
    [Static]
    [Export ("sharedInstanceWithBugSenseAPIKey:")]
    BugSenseCrashController SharedInstanceWithBugSenseAPIKey(String APIKey);

    [Static]
    [Export ("sharedInstanceWithBugSenseAPIKey:userDictionary:")]
BugSenseCrashController SharedInstanceWithBugSenseAPIKey(String APIKey, [NullAllowed] NSDictionary userDictionary);

    [Static]
    [Export ("sharedInstanceWithBugSenseAPIKey:userDictionary:sendImmediately:")]
    BugSenseCrashController SharedInstanceWithBugSenseAPIKey(string APIKey, [NullAllowed] NSDictionary userDictionary, bool immediately);

    [Static]
    [Export ("sharedInstance")]
    BugSenseCrashController SharedInstance();

    [Static]
    [Export ("logException:withTag:")]
    bool LogException (NSException exception, string tag);
}

私の問題は、ヘッダーの「UIAlertViewDelegate」です。Monotouch で「[BaseType (typeof (NSObject))]」ができません。

誰もがどのように助けることができますか?

問題は、BugSense を Monotouch にバインドすることです。Monotouch バインディング ライブラリを作成し、BugSenseiOS.Framework からバイナリ ファイルを取得して、bugsense.a という名前を付け、バインディング プロジェクトに追加しました。しかし、うまくいきません。

私の「LinkWith」:

[assembly: LinkWith ("libBugSense-iOS.a", LinkTarget.ArmV6 | LinkTarget.Thumb | LinkTarget.Simulator, ForceLoad = true, Frameworks="SystemConfiguration", LinkerFlags = "-lz")]

BugSense には SystemConfiguration.framework と libz.dylib が必要です。

BugSense へのリンク http://www.bugsense.com/docs/ios

4

1 に答える 1

1

これがクラッシュレポーターである場合、クラッシュレポーターはMono自体の例外処理に干渉するため、バインドしても機能しないことに注意してください。

于 2012-09-27T01:12:32.837 に答える