Доступ к NSMutableDictionary, созданному в одном классе, из другого ARC iPhone - PullRequest
0 голосов
/ 28 февраля 2012

Если пользователи что-то проверяют в UITableViewCell, я использую этот метод для проверки в NSMutableDictionary * checkDict:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([[checkDict objectForKey:[array objectAtIndex:indexPath.row]] isEqualToString:@"Check"]) {
        [checkDict setObject:@"NOCheck" forKey:[array objectAtIndex:indexPath.row]];
        [table reloadData];
    }
    else 
    {
        [checkDict setObject:@"Check" forKey:[array objectAtIndex:indexPath.row]];
        [table reloadData];
    }
}

В этом классе я установил свойство:

@property (nonatomic, strong) NSMutableDictionary *checkDict;

Я хочу заполнить следующий вид информацией от тех, у кого "Check" как объекты, установленные в checkDict MutableDictionary. Как мне получить доступ к этому MutableDict из следующего класса? Если я создаю экземпляр предыдущего класса, содержащего приведенный выше код, я получаю null для checkDict. Я использую ARC и StoryBoard. Есть ли способ сделать это кроме:

[[NSUserDefaults standardUserDefaults]setObject:checkDict forKey:@"CheckDict"];

1 Ответ

0 голосов
/ 28 февраля 2012

Существуют различные способы:

  1. Вы можете create a common live data manager, который будет a singleton class, который будет содержать этот словарь и к которому вы можете получить доступ в любом месте, используя этот синглтон-класс.

  2. В приведенной выше аппроксимации вы can use App Delegate to store the dictionary (с установщиком / получателем) и обращаетесь к нему с помощью объекта [[UIApplication sharedAppliation] делегат].

  3. Вы can pass this dictionary object to the other view объект, когда вы создаете (alloc / init) представление. Но для этого подхода мы должны создать представление из того же класса, в котором у нас есть этот словарь.

  4. Поскольку этот словарь объявлен как свойство, вы can create the reference of this class in the view class хотите получить доступ к этому словарю, а затем получить доступ к нему, используя ссылку на класс.

Спасибо

...