API 클래스가 있습니다.이 클래스를 MyClass라고 부르며, 전체 응용 프로그램에서 사용할 수 있기를 원합니다. 따라서 #import를 MyProject-Prefix.pch
파일에 넣습니다.자신의 API 클래스를 초기화하십시오.
이제 (내 appDelegate에서) 클래스를 시작하면 cannot init a class object.
이라는 오류 메시지가 나타납니다. 나는 수업을 잘못 시작한다는 것을 알고 있지만 어떻게해야하는지 잘 모르겠다 ... 그리고 개발을 위해 공통적으로 발생하는 것이 아니기 때문에 (내가 본 것처럼) 진실을 알기위한 많은 정보가 없다. "Dummys을위한 오브젝티브 C는 API 년대 만들기"
- 에 대한 모든 링크 :
그래서, 나는이 개 질문이), 구글 (또는 내가 잘못 찾고 있어요)? ;)
- 내 코드를 간략하게 살펴보면 내가 뭘 잘못하고있는 걸까요?
#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"];
편집 내가 예를 들어, 내 수업 같은 방식으로 시작하려고
을 Flurry 않습니다. 예 : 당신은 먼저 ALLOC 필요
[FlurryAnalytics startSession:@"1234"];
좋아요 ... 지금은 정말 바보가 된 기분 ... 나는 그 일을 볼 수 있어야합니다. 그러나, 만약 내가 바라 보면, Flurry는 ... [FlurryAnalytics startSession : @ "1234"];'를 사용하여 flurry를 시작합니다. 어떻게 할 수 있습니까? –
Flurry는'startSession :'클래스 메소드를 사용하여 싱글 톤을 생성합니다. 그러면 그들은 호출하는 모든 클래스 메소드에서 싱글 톤을 호출합니다. – rckoenes
AH, 알았습니다. 나는 ... 조금만 검색 할 것입니다. Thnx. –