내 응용 프로그램에는 일부 뷰 컨트롤러에 뷰 컨트롤러가 많이 있습니다. 일부 변수는 다른 클래스에서 사용하고 싶습니다. .my 변수는 응용 프로그램 위임 파일에 없습니다. 내 응용 프로그램의 모든 부분을 전역으로 사용합니까?클래스 변수를 글로벌 변수로 만들기
0
A
답변
1
제 의견으로는 싱글 톤 패턴을 사용하는 것이 어떻습니까? 따라서 해당 클래스의 변수를 사용하려면 인스턴스를 가져온 다음 변수를 사용하십시오.
@interface MySingletonViewController : UIViewController
{
//here your variables
int globalVariables;
}
@property (nonatomic, assign) int globalVariables;
+ (MySingletonViewController *)sharedSingleton;
@end
@implementation MySingletonViewController
@synthesize globalVariables;
static MySingletonViewController *sharedSingleton = nil;
+ (MySingletonViewController *)sharedSingleton
{
@synchronized(self)
{
if (sharedSingleton == nil)
sharedSingleton = [[MySingleton alloc] init];
return sharedSingleton;
}
}
@end
UIViewController는 실제로 클래스이므로, 우리는 다음과 같이 할 수 있습니다.
+0
나는 UIViewController 수명을 제어하는 것이 + (MySingletonViewController *) sharedSingleton이 아니라고 생각한다. 독립 실행 형 클래스의 옵션을 사용하는 것이 좋으며 응용 프로그램 전반에 도움이됩니다. – Orange
1
물론 가능하지만 전체 앱을 통해 전역 변수를 사용하는 것은 확실히 아키텍처 설계가 손상되었습니다.
MyVeryOwnClass *g_MyVeryOwnClassPointer = nil;
와 같은 액세스합니다 :
로 구현 부분 외부의 *하는 .m 파일 - (클래스에 대한 포인터 당신의 경우) 목표 - C C를 기반으로, 당신은 변수를 정의 할 수 있습니다
extern MyVeryOwnClass *g_MyVeryOwnClassPointer;
/* do some operations with your pointer here*/
또는 extern 선언을 헤더 파일로 이동하십시오.
추 신 : 싱글 톤을 사용할 수 있습니다. 그들은 최선의 해결책은 아니지만 원시 변수를 사용하는 것이 좋습니다.
관련 문제
- 1. 모든 변수를 전역 변수로 만들기
- 2. 클래스 변수를 로컬 변수로 참조하기
- 3. 글로벌 숯불 포인터 만들기
- 4. 글로벌 개체 만들기?
- 5. 내부 클래스 형식 매개 변수를 묶는 클래스 형식 변수로 묶습니다.
- 6. 글로벌 사전을 사용하여 변수 만들기
- 7. 글로벌 변수 레일 만들기 3.1
- 8. "글로벌"컨트롤 만들기
- 9. 글로벌 NSMutableSet 만들기
- 10. vb.net의 글로벌 클래스
- 11. 글로벌 클래스 변수
- 12. 나는 글로벌 클래스
- 13. 클래스 내의 글로벌 사전
- 14. 최종 클래스 변수를 GWT에서 정적으로 만들기
- 15. 변수를 변수로 사용합니다.
- 16. 스키마가 변수를 변수로 전달
- 17. SQL 뷰 만들기, 변수를 실제 변수로 바꾸는 것이 효과적이지 않습니다.
- 18. AJAX 요청에서 글로벌 변수로 돌아 가기
- 19. 블루투스 소켓을 글로벌 변수로 사용 안드로이드
- 20. Java : 변수를 클래스의 변수로 설정합니다. 여기서 클래스 이름은 문자열입니까?
- 21. 클래스 변수를 표시합니다. printf 함수에서 문자열을 매개 변수로 사용.
- 22. 글로벌 화면 변수를 피하는 방법은 무엇입니까?
- 23. Mootools 변수로 클래스 추가
- 24. ASP.NET 글로벌 클래스 | 전역 변수
- 25. 오브젝트를 포함한 글로벌 스태틱 클래스
- 26. Java로 넷빈즈에서 컨트롤 공개/글로벌 만들기
- 27. 클래스 변수 만들기
- 28. 글로벌 개체를 COM 클래스 팩토리로 사용하고 있습니까?
- 29. Perl 변수를 환경 변수로 설정하기
- 30. 스크립트 변수를 매개 변수로 전달
은 appDelegate ..에서 액세스 할 수있는 viewController입니다. – vishy