저는 Objective C를 처음 접했고이 문제를 발견했습니다. 여러 클래스와 주요 함수에서 액세스 할 수있는 Objective C에서 클래스의 글로벌 인스턴스를 만드는 방법은 무엇입니까?Objective-C에서 클래스의 전역 인스턴스를 만드는 방법
0
A
답변
1
이 특정 인스턴스를 반환하는 클래스에 메서드를 추가합니다.
가장 일반적인 경우는 싱글 톤입니다. "공유 인스턴스"를 조회 할 수도 있습니다.
1
이 방법으로 작업을 수행 할 수 있습니다
+(MyClass *) sharedInstance
{
static id sharedInstance = nil;
@synchronized(self)
{
if (!sharedInstance)
{
sharedInstance = [[MyClass alloc] init];
}
return sharedInstance;
}
}
그냥이 한 줄 코드로 객체에 액세스 :
[MyClass sharedInstance]
는 희망이 도움이! 해피 코딩 :)
-1
당신은 싱글 톤을 사용하는 모든 파일이있을 것이라는 점을 수행하여, 당신의 .PCH 파일의 .H 파일을 가져올 수 있습니다이 수입 :
YourClass.h :
@interface YourClass : NSObject
/**
* Method to get the singleton instance
* @return Instance of YourClass
*/
+ (YourClass *)instance;
@end
YourClass 하는 .m : 대물-C - 글로벌 변수]의
#import "YourClass.h"
@interface YourClass(){
}
@end
#pragma mark -
@implementation YourClass
- (id)init{
//prevents normal inits
return nil;
}
+ (YourClass *)instance
{
static YourClass *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[self alloc] initSingelton];
});
return instance;
}
- (id)initSingelton{
if (self = [super init]) {
//do stuff here
return self;
}
return nil;
}
+0
왜 투표가 늦습니까? –
관련 문제
- 1. ObjectiveC에서 클래스의 인스턴스를 만들지 않고 클래스의 상수에 액세스
- 2. 클래스의 인스턴스를 만드는 다른 방법
- 3. EntityDescriptor 클래스의 인스턴스를 만드는 방법
- 4. 종속 클래스의 인스턴스를 만드는 방법
- 5. AS3 - 하위 클래스의 사용 방법, 하위 클래스의 인스턴스를 만드는 방법
- 6. 클래스의 전역 상수를 만드는 방법 - C++
- 7. 다른 메서드에서 클래스의 인스턴스를 만드는 방법
- 8. 기본 문자 클래스의 인스턴스를 만드는 방법
- 9. 처리에서 클래스의 새 인스턴스를 만드는 방법
- 10. asp.net에서 클래스의 인스턴스를 한 번만 만드는 방법
- 11. 값이 있거나없는 클래스의 인스턴스를 만드는 방법
- 12. 모든 하위 클래스의 인스턴스를 만드는 방법
- 13. AppDomain에서 클래스의 새 인스턴스를 만드는 방법
- 14. 파이썬에서 다른 클래스의 클래스 인스턴스를 만드는 방법
- 15. javascript에서 부모 클래스의 새 인스턴스를 만드는 방법
- 16. Python : 다른 클래스의 인스턴스를 자동으로 만드는 방법
- 17. Class.forName의 결과로 제네릭 클래스의 인스턴스를 만드는 방법
- 18. 클래스의 인스턴스를 만드는 방법은 무엇입니까?
- 19. 클래스의 인스턴스를 만드는 방법은 무엇입니까?
- 20. 한 클래스의 인스턴스를 다른 클래스의 인스턴스로 만드는 방법
- 21. 클래스의 인스턴스를 반환하는 방법?
- 22. 클래스의 인스턴스를 얻는 방법
- 23. ObjectiveC에서 수퍼 클래스의 메서드를 호출하는 타이밍이 중요합니까?
- 24. 어떤 클래스의 인스턴스를 얻는 방법?
- 25. Java BlueJ에서 클래스의 인스턴스를 만드는 방법은 무엇입니까?
- 26. 인터페이스를 확장하는 클래스의 인스턴스를 만드는 방법은 무엇입니까?
- 27. 클래스 내에서 클래스의 인스턴스를 만드는 법, 파이썬
- 28. 클래스의 인스턴스를 여러 개 만드는 방법은 무엇입니까?
- 29. 스몰 토크에서 클래스의 인스턴스를 만드는 방법은 무엇입니까?
- 30. XAML에서 클래스의 인스턴스를 만드는 방법은 무엇입니까?
중복 가능성 (http://stackoverflow.com/questions/8808159/objective-c-global-variables)의 HTTP – edtheprogrammerguy
중복 : // 유래. co.kr/questions/8808159/obj ective-c-global-variables – edtheprogrammerguy
@dasblinkenlight는 스레드로부터 안전하지 않습니다. 현재 권장되는 방법은'dispatch_once'를 사용하는 것입니다. 그렇지 않으면'@synchronized'를 사용할 수 있습니다. http://www.galloway.me.uk/tutorials/singleton-classes/ – jcaron