Как получить доступ к переменной Variable в другом классе
У меня есть переменная экземпляра в class1, которая сохраняет целочисленное значение (количество ячеек в табличном представлении), и я хочу использовать эту переменную в другом классе (например, class2), но я не знаю, какой синтаксис использовался???
4 ответа
"Если возможно, используйте переменную-член.
@interface MyClass : NSObject
{
int score;
}
@property (nonatomic, assign) int score;
@end
@implementation MyClass
@synthesize score;
@end
//access
MyClass *object = [MyClass alloc] init];
object.score = 99;
"Также вы можете использовать NSUserDefault
// Snippet used to save your highscore in the prefs.
int highScore = yourGameScore;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults] synchronize];
// Snippet used to get your highscore from the prefs.
highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScore"] intValue ];
Вы можете сделать как:
Например: вы хотите передать строку из Class1
в Class2
,
Сначала создайте строку в Class2 и определите ее как свойство, как в Class2.h
:
NSString *classTwoString;
@property (nonatomic, retain) NSString *classTwoString;
В Class2.m
:
@synthesize classTwoString;
Затем, например, вы хотите передать строку, когда кнопка в Class1
тронут. В своем действии (создать IBAction
, связать это с кнопкой touchesUpInside
), вы можете установить его, чтобы получить экземпляр вашего второго класса, например:
Class2 *class2 = [[Class2 alloc] init];
class2.classTwoString= classOneString;
Я предлагаю вышеупомянутый метод.
С помощью NSUserDefaults
- может потерять сохраненное значение в случае сбоя приложения.
@implementation classA {
int v;
}
id x = [[classA alloc] init];
x->v = 123;
Погуглил "цель c переменной экземпляра" и нашел эту статью. http://blog.ablepear.com/2010/04/objective-c-tuesdays-instance-variables.html
Вы, вероятно, хотите использовать свойства. Вот пример:
Class1.h
@property int myValue
Class1.m
self.myValue = 2
Class2.m
int v = instanceOfClass1.myValue
Вот ссылка на руководство по использованию свойств: http://www.raywenderlich.com/2712/using-properties-in-objective-c-tutorial