2012-05-18 3 views
1

배열의 내용을 세 가지 다른 변수에 저장하는이 함수가 있습니다. 내 질문은 어떻게 동일한 클래스의 다른 함수에서 _company.address에 저장된 내용에 액세스 할 수 있습니다.objective-c의 메소드 외부 변수에 액세스

-(NSArray *) csvArray2CompaniesArray:(NSArray *) csvArray 
{ 
    int i=0;  

    NSMutableArray *ma = [[NSMutableArray alloc] init]; 

    for (NSArray * row in csvArray) 
    { 
     if (i>0) 
     { 
      Company *_company = [[Company alloc] init]; 

      _company.name = [row objectAtIndex:0]; 
      _company.address = [row objectAtIndex:1]; 
      _company.telephone = [row objectAtIndex:2]; 

      [ma addObject:_company]; 
     } 
     i++; 
    } 
    return (NSArray *) ma; 
} 

감사합니다.

+1

주소를 다른 함수의 매개 변수로 사용하거나'_company.address'를 사용할 수 없기 때문에 방금 입력 한 함수가 컴파일되지 않습니다. –

+0

이 함수는 문제없이 컴파일됩니다. 방금 _company.name에 저장된 내용에 다른 함수 나 메서드에서 액세스하는 방법을 알고 싶었습니다. – daunmi

답변

1

당신 수 없습니다 객체의 접근성이 전역으로 선언하거나

당신과 functios 값 사용할 수 있습니다 .H 파일에 클래스의 scope.Better에 선언 function.Either에서 개인입니다 : -

YourViewControllerWithFunction *accessFunc=[[YourViewControllerWithFunction alloc]]init]; 

Company *_company=[accessFunc csvArray2CompaniesArray:youInputArray]; 

[_company objectAtIndex:intVallue];//Use in loop 
+0

빠른 답장을 보내 주셔서 감사합니다. 초기화하는 UITableView를 통해 데이터에 액세스하는 데 문제가 없습니다. 회사 * p = (Company *) [self.importedRows objectAtIndex : indexPath.row]; 초기화하는 것과 비슷한 방법이 있습니까? 예를 들어 "- (void) viewDidLoad"? – daunmi

+0

같은 기능 또는 블록에서 객체에 액세스했을 수 있습니다. 이유는 여러 가지 기능 또는 절차에서 사용되는 viewDidLoad 또는 init 메소드에서 변수를 초기화하는 것입니다. –

+0

클래스에서 생성 된 데이터를 다른 클래스로 보내시겠습니까? –

0

당신은 NSMutableArray로 함수의 반환 값을 수정하거나 copyNSMutableArray 만든의 NSArray를 얻을 수 있도록해야한다.

는 그 후, 당신은 같은 클래스 내의 아무 곳에서 배열의 내용에 액세스 할 수 있습니다

귀하의 질문은 약간 모호한, 그래서 당신이 전달하는 방법을 알고 싶습니다 있을지 확실 해요
for (Company *c in [self csvArray2CompaniesArray:csvarray]) 
{ 
    NSLog(@"%@", c.address); 
} 
관련 문제