2010-11-21 6 views
-1

다음 예제에서는 MyViewController가 저장 한 뷰 컨트롤러에 숫자를 전달하는 메서드를 터치하여 호출 할 때를 보여줍니다. 나중에 다른 방법으로 사용하기 때문에보기 컨트롤러가 숫자를 저장하지 않는 경우에만 문제가 발생합니다. 도와주세요. 고맙습니다.메서드를 통해 정보를 전달하고 저장하는 방법

MyViewController.h

@class MyView; 

@interface ViewController : UIViewController { 
    int number; 
} 

-(void)assignNumber(int)sentNumber; 

@property int number; 

MyViewController.m [viewController assignNumber:5];

+0

5가 숫자로 저장되어 있는지 확인하기 위해 어떤 수표를 발행 했습니까? –

답변

1

@synthesize를 선언하지 않으면 viewController 내부 외부의 번호에 액세스 할 수 없습니다. 추가해보십시오.

@synthesize number; 

맨 위로 MyView.m. 이렇게하면 세터와 게터가 생성됩니다. 다음, 당신은

[viewController setNumber:5]; 

[viewController assignNumber:5]; 

전화를 교체하고 viewController.number 또는 [viewController number] 중 하나에 액세스 할 수 있습니다.

+0

'@ synthesize'는 컴파일러에게 속성에 접근자를 구현하도록 지시합니다. 클래스의'@ interface' (헤더 파일에있는)에 이미 속성을 선언 했어야하고, * that *은 속성을 다른 클래스의 객체에 노출시키는 것입니다. 반대로, 당신이 속성 (또는 그것의 접근 자 메소드를 개별적으로)'@ interface'에 선언하는 한, 당신은 원하는대로 접근자를 구현할 수 있습니다 - 컴파일러가 그것을 ('@ synthesize')하거나 직접 구현하게하십시오; 이 속성을 사용하는 다른 개체와 다를 바는 없습니다. –

0
당신은 할 수 있습니다

에 감동 TouchesBegin와

-(void)loadView { 
    MyView *aView = [[MyView alloc] initWithFrame:wholescreen]; 
    self.view = aView; 
    [aView release]; 
} 

-(id)initWithNibName...... { 
    number = 0; 
} 

-(void)assignNumber:(int)sentNumber { 
    number = sentNumber; 
} 

MyView.h & MyView.m

기본, 변수 nu를 합성합니다. ViewController 구현에서 mber.

관련 문제