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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
#1

Значения из dictionary - Программирование iOS

15.08.2013, 02:47. Просмотров 568. Ответов 7
Метки нет (Все метки)

Помогите. Все делаю по уроку в книге "пайлон д пайлон т программируем для iphone и ipad" . Все делаю как там. Работа со словарями (глава 5), приложение работает, запускается, но во втором представлении все поля пустые, хотя ключи указал. На первом контролере надписи к ячейкам страницы отображаются правильно. Получается дальше первого контролера, значения dictionary (ключи) не используются
Как связать plist со вторым представлением?
0
Вложения
Тип файла: zip app.zip (80.1 Кб, 2 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2013, 02:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Значения из dictionary (Программирование iOS):

Как достать dictionary из dictionary? - Программирование iOS
Подскажите пожалуйста как получить значение dictionary который находится внутри другого dictionary? Я не понимаю как обратиться к нему. ...

Стереть все значения в Dictionary - C#
Есть ли штатные методы, которые позволяют удалить все значения, не трогая ключи?

Как получить значения из Dictionary? - C#
Доброго времени суток пытаюсь использовать метод TryGetValue для получения данных из коллекции Dictionary но видимо что то делаю не так....

Массив в качестве значения в dictionary - C#
Здравствуйте, господа программисты. прошу вашей помощи. Имею следующую конструкцию Dictionary<Id, Char> Ids = new Dictionary<Id,...

Изменение значения в Dictionary по индексу - C#
привет есть Dictionary<char,double> dr 1. как обратится по индексу (не зная ключа)? типа KeyValuePar kv = dr; 2. как изменить...

Поиск значения по ключу в Dictionary - C#
Как сделать что бы я вводил "ttt", а мне выводила "глицин" и наоборот все варианты? using System; using...

7
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
15.08.2013, 07:07 #2
У Вас же книга есть, вы "делаете как там". Тем более, имея такой ник, как-то даже спрашивать про такие вещи не комильфо... :/
Какие есть предположения, по какой причине оно может не работать?
0
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
15.08.2013, 09:35  [ТС] #3
Я не знаю причину по которой оно не работает. Все вроде бы сходится, (ну разве что в книге используется xib, а у меня storyboard, но связи я проверил, все вроде бы одинаково), только у автора отображается информация, а у меня нет
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
15.08.2013, 13:37 #4
А данные как передаете между контроллерами?
0
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
15.08.2013, 13:38  [ТС] #5
Помогите пожалуйста, для завершения проекта осталось связать все контролеры. Для связи хочу использовать словари. Приложение являет собой информацию про сотрудников (анкетные данные) для каждого сотрудника будут поля ФИО, телефон, емеил, словари с ключами подходят наотлично. Но я не знаю (и не могу найти информацию) как работать с plist. Есть уроки про добавление, использование, но у меня даже значения во втором котроллере не отображаются, и я уже не знаю что делать.

drinkMasterViewController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#import "drinkMasterViewController.h"
#import "DrinkConstants.h"
#import "drinkDetailViewController.h"
 
@interface drinkMasterViewController () {
    //NSMutableArray *_objects;
}
@end
 
@implementation drinkMasterViewController
@synthesize drinks = drinks_;
- (void)awakeFromNib
{
    [super awakeFromNib];
}
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSString *path = [[NSBundle mainBundle] pathForResource:@"DrinkDirections" ofType:@"plist"];
    drinks_ = [[NSMutableArray alloc]initWithContentsOfFile:path];
    
    self.navigationItem.leftBarButtonItem = self.editButtonItem;
 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
    self.navigationItem.rightBarButtonItem = addButton;
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
/*- (void)insertNewObject:(id)sender
{
    if (!_objects) {
        _objects = [[NSMutableArray alloc] init];
    }
    [_objects insertObject:[NSDate date] atIndex:0];
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}*/
 
#pragma mark - Table View
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return  1;
}
 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [self.drinks count];
}
/*#pragma mark -
#pragma mark Table view delegate
 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    drinkDetailViewController *detailViewController = [[drinkDetailViewController alloc] initWithNibName:@"DrinkDetailViewController" bundle:nil];
    detailViewController.drink = [self.drinks objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detailViewController animated:YES];
    //[detailViewController release];
}
*/
 
- (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];
    }
    cell.textLabel.text = [[self.drinks objectAtIndex:indexPath.row]objectForKey:NAME_KEY];
    return cell;
}
 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Return NO if you do not want the specified item to be editable.
    return YES;
}
 
 
 
@end
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//
//  drinkDetailViewController.m
//  Drnk
//
//  Created by Admin on 14/08/2013.
//  Copyright (c) 2013 Admin. All rights reserved.
//
 
#import "drinkDetailViewController.h"
#import "DrinkConstants.h"
 
@interface drinkDetailViewController ()
//- (void)configureView;
@end
 
@implementation drinkDetailViewController
 
@synthesize drink=drink_, nameTextField=nameTextField_, ingredientTextView=ingredientTextView_, directionsTextView=directionsTextView_;
 
//#pragma mark - Managing the detail item
/*-(void)viewWillAppear:(BOOL)animated
{
    //[super viewWillAppear:animated];
    self.nameTextField.text = [self.drink objectForKey:NAME_KEY];
    NSLog(@"%@",NAME_KEY);
    self.ingredientTextView.text = [self.drink objectForKey:INSTRUCTIONS_KEY];
    self.directionsTextView.text = [self.drink objectForKey:DIRECTIONS_KEY];
    labels.text = [self.drink objectForKey:NAME_KEY];
}*/
/*- (void)setDetailItem:(id)newDetailItem
{
    if (_detailItem != newDetailItem) {
        _detailItem = newDetailItem;
        
        // Update the view.
        [self configureView];
    }
}
 
- (void)configureView
{
    // Update the user interface for the detail item.
 
    if (self.detailItem) {
        self.detailDescriptionLabel.text = [self.detailItem description];
    }
}
*/
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.nameTextField.text = [self.drink objectForKey:NAME_KEY];
    NSLog(@"%@",NAME_KEY);
    self.ingredientTextView.text = [self.drink objectForKey:INSTRUCTIONS_KEY];
    self.directionsTextView.text = [self.drink objectForKey:DIRECTIONS_KEY];
    labels.text = [self.drink objectForKey:NAME_KEY];
    labels.text = @"XYU";
    
    
    // Do any additional setup after loading the view, typically from a nib.
    //[self configureView];
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
15.08.2013, 13:52 #6
Ну а где в drinkMasterViewController передача отдельного drink'a в drinkDetailViewController, когда происходит segue?
А нету...
А должна быть. Вы если книжкой пользуетесь и сами не понимаете как оно работает, то делайте по книжке. Строго по книжке. Ибо
Цитата Сообщение от Slava-hacker32 Посмотреть сообщение
(ну разве что в книге используется xib, а у меня storyboard, но связи я проверил, все вроде бы одинаково)
"Вроде бы" - не одинаково.

когда посылается сообщение для пуша контроллера используя segue, Вы должны обработать и передать свои данные:
Objective-C
1
2
3
4
5
6
7
8
9
10
#pragma mark - Segue
 
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  id vc = segue.destinationViewController;
  if ([vc isKindOfClass:[drinkDetailViewController class]]) {
    NSIndexPath *indexPath = [self.collectionView indexPathForCell:sender];
    ((drinkDetailViewController*)vc).drink = self.drinks[indexPath.row];
  }
}
PS:
1. drinkDetailViewController - классы с Большой Буквы.
2. @synthesize drinks = drinks_; не drinks_, а _drinks. Это важно. И в новых версия Xcode с новыми компиляторами synthesize можно опустить.
1
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
15.08.2013, 13:58 #7
Slava-hacker32, если вы изучаете новую для себя вещь, то какого же рожна от книги отступаете? Чтобы жизнь мёдом не казалась? Автор использует xibs, вы storyboard замутили. Либо отложите это на то время, когда разберетесь с основами, либо другую книжку возьмите. Просто совет.
0
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 250
15.08.2013, 14:03  [ТС] #8
Спасибо, буду разбираться

Добавлено через 3 минуты
Цитата Сообщение от mobidevelop Посмотреть сообщение
Slava-hacker32, если вы изучаете новую для себя вещь, то какого же рожна от книги отступаете? Чтобы жизнь мёдом не казалась? Автор использует xibs, вы storyboard замутили. Либо отложите это на то время, когда разберетесь с основами, либо другую книжку возьмите. Просто совет.
Мне просто более удобнее изучать материал, решая конкретную задачу. Для реализации этого нужно сделать так. А просто повторить по книжке не столь эффективно (для меня, может кому то хватает того что в книге)
0
15.08.2013, 14:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 14:03
Привет! Вот еще темы с ответами:

Единые значения для Dictionary и List - C#
Всем привет. У меня есть словарь в нем будет храниться большое количество значений. И есть List в лист из словаря я буду добавлять...

Присвоить значения переменным класса из Dictionary - C#
Подскажите, если не сложно, как это сделать.. int i = 0; ClassVivod vivod = new ClassVivod; foreach...

Отбор из Dictionary вложенного в Dictionary - LINQ
Здравствуйте, есть такой код: private Dictionary<string, Dictionary<int, string>> vt = new Dictionary<string, Dictionary<int,...

Сложный Dictionary<MyClass, Dictionary<List<MyClass2>, List<string>>> MyDictionary - C#
Здравствуйте. Помогите plz реализовать обращения к словарю вида : Dictionary&lt;MyClass, Dictionary&lt;List&lt;MyClass2&gt;, List&lt;string&gt;&gt;&gt;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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