2012-05-29 2 views
0

현재 앱의 구조를 개선하고 싶습니다. 다른 클래스의 첫 CCLayer (Cocos2D) 클래스에서 만든 속성에 액세스하려고합니다. 이제 분명히 할당 할 수 있고 접근 할 수 있지만 init 메소드가 호출되고 거기에서 내리막 길을 가야합니다.다른 클래스의 속성에 해당 클래스를 할당하지 않고 액세스 하시겠습니까?

어쨌든, 다시 할당하지 않고 다른 CCLayer 클래스의 속성에 액세스 할 수있는 방법이 있습니까?

또한 내 앱에는 이미 싱글 톤이 있지만 너무 많은 변수가있어 매우 혼란 스럽습니다. 싱글 톤을 사용하는 것 외에 다른 방법이 있습니까?

이미 속성을 설정 했으므로 할당 기법없이 다른 클래스에서 액세스해야합니다.

감사합니다.

+0

첫 번째 CCLayer에 대한 참조가있는 싱글 톤 클래스를 만든 다음이를 사용하여 두 번째 CCLayer의 속성에 액세스 한 적이 있습니까? – WendiKidd

+0

"내리막 길"이라면 무엇을 의미합니까? 클래스의 속성에 액세스해야하는 경우 해당 클래스의 인스턴스가 있어야합니다. 새 것을 만들거나 이미 만든 참조를 가져와야합니다. 일부 코드를 게시하면 Google에서 도움이 될 것입니다. –

+0

내 init 메소드의 모든 것을 두 번 할당 할 수 있다는 것을 의미하므로이 점을 이해하고 싶습니다. –

답변

0

필요한 것은 싱글 톤 클래스입니다.

헤더 :

#import <Foundation/Foundation.h> 

@interface Configuration : NSObject { 
    NSString *serverPath; 
    NSString *configurationServicePath; 
} 

// Single instance 
+ (Configuration *) configuration; 

구현 :

@implementation Configuration 
@synthesize serverPath, configurationServicePath; 

- (id)init { 
    self = [super init]; 
    if (self) { 
     // init 
    } 

    return self; 
} 


+ (Configuration *) configuration 
{ 
    static Configuration *configuration; 

    @synchronized(self) 
    { 
     if (!configuration) { 
      configuration = [[Configuration alloc] init]; 
     } 

     return configuration; 
    } 
} 

그래서 매번 클래스를 사용하여, 당신은 단지 (인스턴스를 얻을 수 있습니다 귀하의 경우 나는 보통 그런 식으로 할 이미 하나가 아니라면 인스턴스를 한 번만 만듭니다).

Configuration configuration = [Configuration configuration]; 
+0

내 앱에는 싱글 톤이 있지만 거기에는 너무 많은 변수와 사물들이있어 지저분해진다. Theres 다른 방법? –

+0

그러나 싱글 톤 클래스 외에 다른 옵션이없는 것처럼 질문을 변경하고 형성해야합니다. – Prine

+0

@iBradApps 이것이 최선의 방법이라고 말하고 싶습니다.싱글 톤 (이 경우)의 목적은 많은 클래스가 액세스해야하는 변수를 보유하는 것입니다. 나는 그들이 * 다른 방법이라고 확신하지만,이 작품은 :) – WendiKidd

2

코코스에 대해 많이 알지는 못하지만 Objective C에서는 해당 객체에 대한 참조를 찾아 해당 속성에 액세스해야합니다. 당신이 초기화 또는 액세스를 수행하는 데 필요한 개체의 다른 세터에 액세스 할 필요가있는

  • 이 개체의 속성을 인스턴스를 전달합니다

    는 다른 개체에서 개체에 액세스하는 방법은 여러 가지가 있습니다

  • 은 싱글 인스턴스를 만들고이를
  • 지도 (NSDictionary) 또는 프로그램이 그들에게 할당하는 문자열 키를 사용하여 객체의 인스턴스를 찾을 수 있습니다 캐시 (NSCache) 만들기에 액세스하기위한 클래스 메소드를 추가합니다.
관련 문제