2009-07-03 3 views

답변

5

여기에 대한 질문과 답변은 singletons입니다.

또한 액세스는 어디서나 사용하는 frankodwyer가 제안, 응용 프로그램 대리자를 사용하고 수 :

id delegate = [[UIApplication sharedApplication] delegate]; 

사용의 용이성 및 유형의 안전을 위해이 같은 범주를 사용

// put his in your delegate header file 
@interface UIApplication(MyAppAdditions) 
+ (MyAppDelegate*)sharedDelegate; 
@end 

// put his in your delegate implementation file 
@implementation UIApplication(MyAppAdditions) 
+ (MyAppDelegate*)sharedDelegate { 
    return (MyAppDelegate*)[[self sharedApplication] delegate]; 
} 
@end 

이제 어디서나 앱 대리인에게 액세스 할 수 있습니다. [UIApplication sharedDelegate]

+0

+1 멋진 - 그와 같은 대의원을위한 지름길이 있다는 것을 몰랐습니다. 뷰의 속성으로 수동으로 설정했습니다. 도우! – frankodwyer

+0

나는 비슷한 것을하고 싶지만 대신 #define을 사용한다 : #define UIApp [UIApplication sharedApplication] #define UIAppDelegate ((MyAppDelegate *) [UIApp delegate]) –

+0

다른 방법이 있습니까? 두 섹션을 가지고있는 uitable 두 가지 의미합니다. 두 섹션은 여러 rows.both 두 개의 서로 다른 views.i 두 개의 views.and에서 정수를 증가시키고 싶습니다. 내가 테이블에서 돌아 왔을 때 데이터베이스에 업데이트하려고합니다. –

2

앱의 정수 및 문자열 속성을 위임자에게 전달하고 위임자에게 참조로 전달할 수 있습니다. 나는 솔직히 말해서 앱이 모든 뷰에 대해 위임 할 수있게하는 약간의 오류와 애매한 점이 있지만 나 자신처럼 뭔가를한다.

또는 (아마도 더 좋을 것입니다.) 데이터 클래스 중 하나 인 싱글 톤 클래스 (Google 싱글 톤 패턴)를 선언하고 정수/문자열을 해당 속성으로 지정할 수 있습니다. 그런 다음 프로그램의 어느 곳에서나 싱글 톤의 getters/setters에 액세스 할 수 있습니다. 그러나 여러 개의 스레드가있는 경우 각별한주의가 필요합니다.

관련 문제