私はAPIクラスを持っています。これをMyClassと呼ぶことができます。これは私のアプリケーション全体で利用できるようにしたいのです。したがって、私は#importをMyProject-Prefix.pch
ファイルに入れました。私自身のAPIクラスを初期化する
私が(私のappDelegateで)クラスを開始すると、エラーメッセージcannot init a class object.
が表示されます。 私は私のクラスを間違って開始していることを理解していますが、私はそれをどうすればいいのか分かりません。これは開発のための共通点ではないので(私が見ているように)、 "DummysのためのObjective-C APIを作成" と呼ばれるための
- どれリンク:;グーグル(または私は間違って探しています))
ので、私は2つの質問がありますか? ;)
- 私のコードを簡単に見て、私は間違っていますか?
#import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> #import "NSStringAdditions.h" #import "XMLRPCResponse.h" #import "XMLRPCRequest.h" #import "XMLRPCConnection.h" /** * END required libs */ extern int EID; extern NSString * SHARED_SECRET; extern NSString * MODE; @interface MyClass : NSObject + (id)initWithEid:(int)eid secret:(NSString*)secret mode:(NSString*)mode; + (NSArray*)web_invoice_infoWithOCR:(NSString*)ocr pno:(NSString*)pno; + (NSString*)the_digest:(NSString*)source; @end
MyClass.m
#import "MyClass.h" @implementation MyClass int EID; NSString * SHARED_SECRET; NSString * MODE; NSString * URL_LIVE; NSString * URL_BETA; #pragma mark init/dealloc + (id)init { self = [super init]; if (self) { } return self; } + (id)initWithEid:(int)eid secret:(NSString*)secret mode:(NSString*)mode { self = [super init]; if (self) { if (![[mode lowercaseString] isEqualToString:@"beta"] && ![[mode lowercaseString] isEqualToString:@"live"]) { @throw ([NSException exceptionWithName:@"Invalid mode" reason:[NSString stringWithFormat:@"Invalid mode '%@' selected. Should either be 'beta' or 'live'", mode] userInfo:nil]); } EID = eid; SHARED_SECRET = secret; MODE = [mode lowercaseString]; } return self; } + (NSArray*)web_invoice_infoWithOCR:(NSString*)ocr pno:(NSString*)pno { NSArray *params = [NSArray arrayWithObjects:ocr, EID, pno, [MyClass the_digest:[NSString stringWithFormat:@"%d:%@:%@", EID, ocr, SHARED_SECRET]], nil]; NSLog(@"Array: %@", params); return params; } - (id)xmrpc_call_function:(NSString*)method parameters:(NSArray*)params { // Not finished yet, Warning exists } [...]
私のコードを見てみたが、あなたは+(ID)init関数に気付くでしょう MyClass.h:
このは私のクラスであります。私は-(id)init, -(id)initialize, +(id)initialize, +(void)initialize, -(void)initialize
を試しました。
これはどのように私AppDelegateで、「負荷」私のクラスである:私は私のクラスと同じ方法等を開始しようとしています
[MyClass initWithEid:1234 secret:@"1234" mode:@"BETA"];
EDIT
慌てる。例:あなたが最初にそれをアロケーションする必要が
[FlurryAnalytics startSession:@"1234"];
[OK]を...今私はその1を見ている必要があります...本当に愚かな感じ。 しかし、私が見ると、Flurryについては、[FlurryAnalytics startSession:@ "1234"]; 'を使用してFlurryを開始します。彼らはどうしたらできますか? –
Flurryは、クラスメソッド 'startSession:'でシングルトンを作成し、呼び出すクラスメソッドからシングルトンを呼び出します。 – rckoenes
AH、ok。私は見る...私は少しそれを検索します。 Thnx。 –