2009-12-04 5 views
0

필자는 정말 오랜 객관적인 C 함수 정의를 가지고 있으며, 함수를보다 쉽게 ​​읽을 수 있도록 여러 줄로 나누고 싶습니다. 이 정의가 있다고 가정 해 봅시다 :목적 C 함수 정의를 분할하는 방법은 무엇입니까?

-(id) initWithBsType:(NSInteger)buysell AccountCode:(NSString *):c_acc_code password:(NSString *)password exchangeCode:(NSString *)ecode productCode:(NSString *)product orderType:(NSString *)otype price:(NSString *)price qty:(NSString *):qty reference:(NSString *)ref enablePriceWarn:(BOOL)enablepw enableApprvWarn:(BOOL)enableaw orderValidity:(NSString *)validity; 

3-4 줄로 나누려면 어떻게해야합니까?

(I은 libxml을 사용하여 XML로 직렬화 할 수있는 개체를 만드는거야, 그래서 창조에 목적이 많은 PARAMS을 할당 할 수 있어야합니다.) 일반적인 목표 - C 스타일에서

+1

하지 마십시오 : 이제 초기화가 필요

typedef struct { /* ... */ } Order; // extend the xml-reader for clean seperation, // seperate into multiple methods if too big -(BOOL) readOrder:(Order*); 

는 하나 개의 매개 변수를 사용하는 질문을 이해하십시오. 왜 당신이 원한다면 (라인의 약 75 번째 문자) 새 라인을 삽입하지 않습니까? – notnoop

+2

또한 100s의 인수 대신 구조체를 전달할 수 있습니다.) –

+1

또는 더 기본적인'-initWith ... '메소드와 setter 묶음 (예 : NSAlert')이 있습니다. – Wevah

답변

1

, 방법을 당신이 부드러운 포장을 사용하려면 "라인 포장"을 설정할 수 있습니다 "들여 쓰기"에서 엑스 코드의 구성에서,

-(id) initWithBsType:(NSInteger)buysell 
     AccountCode:(NSString *)c_acc_code 
      password:(NSString *)password 
     exchangeCode:(NSString *)ecode 
     productCode:(NSString *)product 
      orderType:(NSString *)otype 
       price:(NSString *)price 
       qty:(NSString *)qty 
      reference:(NSString *)ref 
    enablePriceWarn:(BOOL)enablepw 
    enableApprvWarn:(BOOL)enableaw 
     orderValidity:(NSString *)validity; 
+0

예 .. 그 것처럼 보입니다. – futureelite7

2

또는 당신은 필요가 없을 것이다 : 그 기간 여러 줄은 일반적으로 그들을 더 읽을 수 있도록 콜론으로 정렬 다시 이것에 대해 걱정하십시오.

0

긴 매개 변수 목록을 보면 호출하는 함수가 어떻게 보이는지 알 수 있습니다.

나는 구조체를 사용하는 것이 좋습니다 어쩌면 예를 들어, 많은 방법으로 XML의 읽기를 나눌 것 :

-(id) initWithOrder:(Order*)order;