Сделайте NSString доступным во всем классе - PullRequest
0 голосов
/ 06 января 2011

Я хочу знать, как сделать NSString доступным во всем классе.Скажем, у меня есть эти коды:

    - (void) init { 
        NSArray *elements  = [xpathParser search:@"//foo"];
            TFHppleElement *element = [elements objectAtIndex:0];
            NSString *data  = [element content];

        NSArray *elements1  = [xpathParser search:@"//foo2"];
            TFHppleElement *element2 = [elements1 objectAtIndex:0];
            NSString *data2 = [element2 content];
    }

И я хочу использовать данные и данные2 во всем классе, как я могу это сделать?

Я хочу показать результаты здесь:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell.


    switch (indexPath.row) {

        case 0 :

            cell.textLabel.text = (@"%@", data);

            break;

        case 1: 

            cell.textLabel.text = (@"%@", data2);

            break;
}
    // Email & Password Section


    return cell;    
}

Ответы [ 2 ]

1 голос
/ 06 января 2011

Почему бы не сделать их properties и использовать сгенерированные сеттеры?

Итак, в вашем файле .h:

@interface YourClass  {
}
@property (nonatomic, copy) NSString *data;
@property (nonatomic, copy) NSString *data2;

В вашем файле .m:

@synthesize data, data2;
- (void) init { 
    NSArray *elements  = [xpathParser search:@"//foo"];
        TFHppleElement *element = [elements objectAtIndex:0];
        [self setData:[element content]];

    NSArray *elements1  = [xpathParser search:@"//foo2"];
        TFHppleElement *element2 = [elements1 objectAtIndex:0];
        [self setData2:[element2 content]];
}
1 голос
/ 06 января 2011

Сделайте их переменными внутри класса, объявив их вне метода, например:

NSString *data;
NSString *data2;

- (void) init { 
  NSArray *elements  = [xpathParser search:@"//foo"];
  TFHppleElement *element = [elements objectAtIndex:0];
  data = [[element content] retain];

  NSArray *elements1  = [xpathParser search:@"//foo2"];
  TFHppleElement *element2 = [elements1 objectAtIndex:0];
  data2 = [[element2 content] retain];
}

и позже:

- (void)dealloc {
  [data release];
  [data2 release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...