Я должен создать NSString, таким образом, я могу установить его значение в одном классе и получить его в другом. Как я могу сделать это?
если вы напишете:
NSString *globalString = @"someString";
где угодно за пределами метода, определения класса, функции и т.д. ... на него можно будет ссылаться где угодно. (это глобально!)
Файл, который обращается к нему, объявляет его как внешний
extern NSString *globalString;
Это объявление означает, что доступ к нему осуществляется из другого файла.
Если вы создаете глобальную переменную NSString
, вам, вероятно, следует использовать метод класса.
В MyClass.h
:
@interface MyClass : NSObject {}
+ (NSString *)myGlobalVariable;
+ (void)setMyGlobalVariable:(NSString *)val;
@end
В MyClass.m
:
@implementation MyClass
NSString *myGlobalVariable = @"default value";
+ (NSString *)myGlobalVariable {
return myGlobalVariable;
}
+ (void)setMyGlobalVariable:(NSString *)val {
myGlobalVariable = val;
}
@end
Я думаю, вам следует использовать синглтон. Хорошая статья, в которой обсуждается это Singletons, AppDelegates и данные верхнего уровня.
Дополнительная информация об одноэлементном классе находится в MVC на iPhone: Модель
Помните, что вы должны помнить о выделении и освобождении памяти. Это не то же самое, что глобальное значение int - вам нужно управлять памятью с помощью любого NSObject.
Неоднократная простая установка глобального значения на новые строки приведет к утечке. Доступ через потоки создаст всевозможные проблемы. Затем следует выключение, когда последняя струна все еще будет рядом.
Сделать его глобальной переменной.
В одном файле в глобальной области:
NSMutableString *myString = @"some funny string";
В другом файле:
extern NSMutableString *myString;