Самый простой способ получить доступ к переменной в другом классе - PullRequest
1 голос
/ 10 ноября 2010

Я объявляю переменную в одном классе и хочу использовать эту переменную в том же классе, но я хочу поместить данные в переменную в другом классе. Как я могу заполнить переменную из другого класса?

EDIT:

У меня есть это в одном классе:

NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
NSString *aString = [[managedObject valueForKey:@"data"] description];

Тогда у меня есть это в другом классе:

    NSString *stalklabel = aString;

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel, nil]];

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

Создание метода свойства / метода установки для установки переменной:

В .h

@property(nonatomic, assign) int myInt;

В .m

@synthesize myInt;
1 голос
/ 10 ноября 2010

Все о свойствах - это правда. Недостающий кусок - это способ общения одного класса с другим. Я делаю это все время следующим образом:

Предположим, у меня есть класс "Первый" и класс "Второй". В моем «первом» классе я хочу иметь доступ к «myInt» varable внутри «второго» класса.

Я бы объявил «Второй» таким:

@class FirstClass; // Forward Declaration
@interface SecondClass: NSObject {
  FirstClass*first;
}

@property (nonatomic,retain) FirstClass *first;

Теперь, где бы я ни создавал secondClass (скажем, в этом случае внутри firstClass, но это не обязательно), я бы сделал что-то вроде "

SecondClass *second = [[SecondClass alloc] init];
[second setFirst: self];

Тогда внутри «второго» кода вы можете сделать:

[first setMyInt:123];
1 голос
/ 10 ноября 2010

В вашем первом классе создайте метод, который возвращает эту строку.

+ (NSString*)dataName {
    NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
    NSString *aString = [[managedObject valueForKey:@"data"] description];
}

Во втором классе вызовите этот метод.

- (void)whatEverClass {
    NSString *stalklabel = [FirstClass dataName];

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel, nil]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...