정수와 문자열을 클래스의 다른 모든 클래스에 액세스하고 싶습니다. 가장 좋은 방법은 무엇입니까? 나는 프로그램에서 값을 증가시키고 선언 된 클래스에서 그들을 업데이트하고 싶다. ...정수 및 문자열을 iphone에 전역으로 액세스 하시겠습니까?
어떤 생각을 어떻게 이룰 까?
정수와 문자열을 클래스의 다른 모든 클래스에 액세스하고 싶습니다. 가장 좋은 방법은 무엇입니까? 나는 프로그램에서 값을 증가시키고 선언 된 클래스에서 그들을 업데이트하고 싶다. ...정수 및 문자열을 iphone에 전역으로 액세스 하시겠습니까?
어떤 생각을 어떻게 이룰 까?
여기에 대한 질문과 답변은 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]
앱의 정수 및 문자열 속성을 위임자에게 전달하고 위임자에게 참조로 전달할 수 있습니다. 나는 솔직히 말해서 앱이 모든 뷰에 대해 위임 할 수있게하는 약간의 오류와 애매한 점이 있지만 나 자신처럼 뭔가를한다.
또는 (아마도 더 좋을 것입니다.) 데이터 클래스 중 하나 인 싱글 톤 클래스 (Google 싱글 톤 패턴)를 선언하고 정수/문자열을 해당 속성으로 지정할 수 있습니다. 그런 다음 프로그램의 어느 곳에서나 싱글 톤의 getters/setters에 액세스 할 수 있습니다. 그러나 여러 개의 스레드가있는 경우 각별한주의가 필요합니다.
+1 멋진 - 그와 같은 대의원을위한 지름길이 있다는 것을 몰랐습니다. 뷰의 속성으로 수동으로 설정했습니다. 도우! – frankodwyer
나는 비슷한 것을하고 싶지만 대신 #define을 사용한다 : #define UIApp [UIApplication sharedApplication] #define UIAppDelegate ((MyAppDelegate *) [UIApp delegate]) –
다른 방법이 있습니까? 두 섹션을 가지고있는 uitable 두 가지 의미합니다. 두 섹션은 여러 rows.both 두 개의 서로 다른 views.i 두 개의 views.and에서 정수를 증가시키고 싶습니다. 내가 테이블에서 돌아 왔을 때 데이터베이스에 업데이트하려고합니다. –