2012-02-03 2 views
0

액세스 할 때 빈 var 값이 나타납니다. 그 var 제대로 덮어 씁니다. 하는 .m에xcode 빈 변수가 올바르게 설정되었습니다.

NSString *nomTab1; 

@property (strong, nonatomic) NSString *nomTab1; 

:

'NAME1은 "같은 .H에서 선언도

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    NSArray *viewControllers = [NSArray alloc]; 

    nomTab1 = [NSString alloc]; 

는 synthezided 및 함수 실행 중에 제대로 설정되어 있습니다. 그러나 다른 함수 (동일한 컨트롤러)에서 액세스하려고하면 값이 비어 있습니다. 근본적인 문제인 것 같지만 일하지 않습니다 ... 고맙습니다.

+0

할당해야합니다. –

+0

액세스하기 전에 값을 설정 하시겠습니까? – Ilanchezhian

+0

질문에 사용할 수있는 정보가 충분하지 않습니다. 초기화 코드를 게시하십시오. – Vignesh

답변

0

nomTab1이 유지되지 않습니다. 당신은 합성했다고 말하지만, 값이 유지되지 않도록 self.nomTab1 = ...을 사용하고 있지 않습니다.

synthesize 및 properites에 대한 설명은 this을 확인하십시오.

0

초기화해야합니다. 다음과 같은 클래스의 init 메소드가 있어야합니다.

- (id)init { 
    self = [super init]; 
    if (self) { 
     // do something 
     self.nomTab1 = [NSString string]; 
    } 
    return self; 
} 
0

코드에 naked alloc이 없어야합니다. 그들은이 초기화 된 때까지 그들은 (당신이 그들에 액세스 할 때 비어 보이는 이유는 아마 인) 값을하지 않아도

NSArray *viewControllers = [[NSArray alloc] initWithObjects:..]; 
nomTab1 = [[NSString alloc] initWithSomeValue:...]; 

NSArrays 및 NStrings는 불변 : 당신은 ALLOC와 같이, 함께 init을한다 일단 초기화되면 변경할 수 없습니다.

값을 나중에 설정하려는 경우 해당 값을 nil로 설정하고 개체가 무엇인지 알면 개체를 설정하거나 NSMutableArray 및 NSMutableString을 사용합니다.이 값은 생성 된 후에 수정할 수 있습니다.

관련 문제