2013-04-05 2 views
0

Я только начал программировать в XCode, и мне нужна ваша помощь. У меня две пустоты; в первой пустоте я создаю NSString, а во второй void мне нужно значение этой строки, но я не знаю, как получить это значение.Получить значение переменной из другой пустоты

Это версия shortend моей .h файл

//.h file 
-(void)viewDidLoad 
{ 
    [self ActionOne]; 
} 

-(IBAction)ButtonClick (id):sender 
{ 
    [self ActionTwo]; 
} 

    -(void)ActionOne 
    { 
     NSString *VarString = @"hello"; 
    } 

    -(void)ActionTwo 
    { 
     NSLog (@"%@", VarString); 
    } 

Моя проблема заключается в том, что выход NSLog является «нулевым», я надеюсь, что кто-то может помочь мне

+1

Это "методы", а не "пустоты". 'void' - это возвращаемый тип метода. Вы будете путать людей, если вы вызовете свои методы по типу возврата. :) –

ответ

2

Вы объявили локальную переменную в ActionOne. Он работает только до тех пор, пока работает метод. Для постоянного хранения вам нужен ivar (это термин, используемый в Objective-C, для обозначения «переменной экземпляра», которая представляет собой переменную, для которой имеется отдельная копия для каждого объекта, являющегося экземпляром класса). Самый простой способ сделать это - объявить свойство, которое создаст ivar и методы доступа к нему для чтения и записи. В вашем файле .h:

@interface MyViewController: UIViewController 

@property (nonatomic, strong) NSString *varString; 

// ... method declarations, etc 

@end 

, а затем в файле .m:

-(void)actionOne 
{ 
    self.varString = @"hello"; 
} 

-(void)actionTwo 
{ 
    NSLog(@"%@", self.varString); 
} 
+0

Спасибо, я уже знал, что мне нужно объявить свойство, Но я не знал, что мне нужно заменить 'NSString * VarString = @ "hello";' С 'self.varString = @ "hello";' Благодаря! – Berendschot

Смежные вопросы