Форум программистов, компьютерный форум CyberForum.ru

Как получить доступ к изменению переменной из другого класса? - Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
HellBoy4eG
7 / 7 / 1
Регистрация: 15.10.2013
Сообщений: 18
15.10.2013, 14:51     Как получить доступ к изменению переменной из другого класса? #1
Это наверное клупый вопрос, но я не могу его решить!
создал таблицу с тремя элементами в основе лежит массив с тремя обьектами(словарями).Словари с ключами имя и картинка.
на панель навигации добавил кнопку которая открывает другой вью контроллер, в этом контроллере я задаю имя и добавляю картинку из библиотеки, тоесть создаю еще один словарь.

пытаюсь добавить в массив из таблицы еще один обьект, все это происходит в классе вью контроллера, ничего не выходит(( при создании обьекта класса таблицы, пишет размер массива - 0, помогите((, если у кого есть примеры хотябы немного похожие на мою ситуацию поделитсь плс!! за ранее спасибо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 14:51     Как получить доступ к изменению переменной из другого класса?
Посмотрите здесь:

Objective-C Доступ к NSMutableDictionary
Objective-C Асинхронный доступ к SQLite
Objective-C Разница между @property и объявлением переменной в классе хедера
Objective-C Как получить доступ к переменным объекта класса-родителя?
Objective-C Property класса
Objective-C Как присвоить из строки значение float/double к переменной?
Objective-C Передача информации из текстбоксов одного окна в таблицу другого окна
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
15.10.2013, 15:06     Как получить доступ к изменению переменной из другого класса? #2
Код бы ваш посмотреть
zulkis
15.10.2013, 15:35
  #3

Не по теме:

АццкийМальчик... Какой ник, такое и объяснение проблемы...

HellBoy4eG
7 / 7 / 1
Регистрация: 15.10.2013
Сообщений: 18
15.10.2013, 15:46  [ТС]     Как получить доступ к изменению переменной из другого класса? #4
2 класса : TableViewController отвечающий за таблицу, и ViewController в котором создается ее один словарь(на самом деле классов много и большо описание но интересут связь имнно мжду этими двумя)


TableViewController.h
@interface TableViewController : UITableViewController
@property(nonatomic,copy)NSMutableArray*arrDictionary;

TableViewController.m
@interface TableViewController ()
@synthesize ImageView;

Добавлено через 9 минут
2 класса : TableViewController отвечающий за таблицу, и ViewController в котором создается ее один словарь(на самом деле классов много и большо описание но интересут связь имнно мжду этими двумя)


TableViewController.h
@interface TableViewController : UITableViewController
@property(nonatomic,copy)NSMutableArray*arrDictionary;

TableViewController.m
@interface TableViewController ()
@synthesize ImageView;
- (void)viewDidLoad
{

[super viewDidLoad];
NSDictionary*d1=[NSDictionary dictionaryWithObjectsAndKeys:dataObj1,@"image",@"Gloria",@"name",nil];
NSDictionary*d2=[NSDictionary dictionaryWithObjectsAndKeys:dataObj2,@"image",@"Alex",@"name",nil];
NSDictionary*d3=[NSDictionary dictionaryWithObjectsAndKeys:dataObj3,@"image",@"Bob",@"name",nil];
arrDictionary=[[NSMutableArray alloc]init];
[arrDictionary addObject:d1];
[arrDictionary addObject:d2];
[arrDictionary addObject:d3];

NSLog(@" did load %i",[arrDictionary count]);// при запуске показывает 3

}

ViewController.h
@interface lastViewController :
UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate, UITextFieldDelegate>

ViewController.m

-(void)imagePickerControllerUIImagePickerController *)picker didFinishPickingMediaWithInfoNSDictionary *)info
{
UIImage*chosenImage=info[UIImagePickerControllerEditedImage];


lastDict=[NSMutableDictionary dictionaryWithObjectsAndKeys:chosenImage,@"image",@" ",@"name", nil];// создаю словарь
[picker dismissViewControllerAnimated:YES completion:NULL];
NSLog(@"%i",[lastDict count]); // значение 1 тоесть добавляется
TableViewController* table=[[ TableViewController alloc]init];
[table addObjec lastDict];// добавляю в массив
NSLog(@"%i",[table.arrDictionary count]); // выводит значени 0;
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
15.10.2013, 18:38     Как получить доступ к изменению переменной из другого класса? #5
Используйте разметку, пожалуйста.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
16.10.2013, 06:42     Как получить доступ к изменению переменной из другого класса? #6
Objective-C
1
2
TableViewController* table=[[ TableViewController alloc]init];
[table addObjec lastDict];// добавляю в массив
Когда вы добавляете объект, метод viewDidLoad еще не сработал, ваш arrDictionary == nil
HellBoy4eG
7 / 7 / 1
Регистрация: 15.10.2013
Сообщений: 18
16.10.2013, 12:27  [ТС]     Как получить доступ к изменению переменной из другого класса? #7
Поставлю вопрос по другому!!
есть 2 класса,А и Б, в классе А есть массив, как мне из класса Б добавить обькт в массив касса А????
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 13:14     Как получить доступ к изменению переменной из другого класса?
Еще ссылки по теме:

Вызов метода из другого класса Objective-C
Передача переменной между контроллерами Objective-C
Objective-C Сохранение и считывание переменной
Objective-C Как из одного метода обратиться к переменной другого?
Как сделать доступ к элементам массива по индексу и по литералу индекса? Objective-C

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
16.10.2013, 13:14     Как получить доступ к изменению переменной из другого класса? #8
А в чем конкретно теперь-то у вас проблема?
Вы спрашиваете: почему не добавляется?
Я отвечаю: потому что вы пытаетесь добавить элемент до того, как массив создается
Вы ответ игнорируете и задаете другой вопрос

В классе Б:

Objective-C
1
[a.array addObject:obj];
array создаете либо в ините, либо делаете ленивый геттер:

Objective-C
1
2
3
4
5
6
- (NSMutableArray *)array {
    if (_array == nil) {
        _array = [NSMutableArray array];
    }
    return _array;
}
Yandex
Объявления
16.10.2013, 13:14     Как получить доступ к изменению переменной из другого класса?
Ответ Создать тему
Опции темы

Текущее время: 21:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru