//
//  Allocating_and_Making_Use_of_DictionariesAppDelegate.m
//  Allocating and Making Use of Dictionaries
//
//  Created by Vandad Nahavandipoor on 07/07/2011.
//  Copyright 2011 Pixolity Ltd. All rights reserved.
//

#import "Allocating_and_Making_Use_of_DictionariesAppDelegate.h"

@implementation Allocating_and_Making_Use_of_DictionariesAppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // Miejsce na przeprowadzenie własnej konfiguracji po uruchomieniu aplikacji.
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  [self.window makeKeyAndVisible];
  
  /* 1 */
//NSArray *person = [[NSArray alloc] initWithObjects:
//                   @"Jan",
//                   @"Kowalski",
//                   [NSNumber numberWithUnsignedInteger:51], nil];
//
//NSLog(@"Imię = %@", [person objectAtIndex:0]);
//NSLog(@"Nazwisko = %@", [person objectAtIndex:1]);
//NSLog(@"Wiek = %@", [person objectAtIndex:2]);
  
  /* 2 */
//NSNumber *age = [NSNumber numberWithUnsignedInteger:51];
//NSDictionary *person = [[NSDictionary alloc] initWithObjectsAndKeys:
//                        @"Jan", @"First Name",
//                        @"Kowalski", @"Last Name",
//                        age, @"Age",
//                        nil];
//
//NSLog(@"Imię = %@", [person objectForKey:@"First Name"]);
//NSLog(@"Nazwisko = %@", [person objectForKey:@"Last Name"]);
//NSLog(@"Wiek = %@", [person objectForKey:@"Age"]);
                          
  /* 3 */
//NSNumber *age = [NSNumber numberWithUnsignedInteger:51];
//NSMutableDictionary *person = [[NSMutableDictionary alloc] 
//                               initWithObjectsAndKeys:
//                        @"Jan", @"First Name",
//                        @"Kowalski", @"Last Name",
//                        age, @"Age",
//                        nil];
//
//[person removeObjectForKey:@"Age"];
//
//NSLog(@"Imię = %@", [person objectForKey:@"First Name"]);
//NSLog(@"Nazwisko = %@", [person objectForKey:@"Last Name"]);
//NSLog(@"Wiek = %@", [person objectForKey:@"Age"]);
  
  /* 4 */
//NSNumber *age = [NSNumber numberWithUnsignedInteger:51];
//NSDictionary *person = [[NSDictionary alloc]  initWithObjectsAndKeys:
//                        @"Jan", @"First Name",
//                        @"Kowalski", @"Last Name",
//                        age, @"Age",
//                        nil];
//
//[person enumerateKeysAndObjectsUsingBlock:
// ^(__strong id key, __strong id obj, BOOL *stop) {
//  
//  NSLog(@"Klucz = %@, obiekt przypisany kluczowi = %@", key, obj);
//  
//}];

  /* 5 */
//NSNumber *age = [NSNumber numberWithUnsignedInteger:51];
//NSDictionary *person = [[NSDictionary alloc]  initWithObjectsAndKeys:
//                        @"Jan", @"First Name",
//                        @"Kowalski", @"Last Name",
//                        age, @"Age",
//                        nil];
//  
//for (id keyInDictionary in [person allKeys]){
//  
//  id objectForKey = [person objectForKey:keyInDictionary];
//  NSLog(@"Klucz = %@, obiekt przypisany kluczowi = %@", keyInDictionary, objectForKey);
//  
//}
  
  /* 6 */
//NSNumber *age = [NSNumber numberWithUnsignedInteger:51];
//NSDictionary *person = [[NSDictionary alloc]  initWithObjectsAndKeys:
//                        @"Jan", @"First Name",
//                        @"Kowalski", @"Last Name",
//                        age, @"Age",
//                        nil];
//  
//NSEnumerator *keys = [person keyEnumerator];
//id keyInDictionary = nil;
//
//while ((keyInDictionary = [keys nextObject]) != nil){
//  
//  id objectForKey = [person objectForKey:keyInDictionary];
//  NSLog(@"Klucz = %@, obiekt przypisany kluczowi = %@", keyInDictionary, objectForKey);
//  
//}
  
  return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
  /*
   Ta metoda jest wywoływana, gdy aplikacja przechodzi ze stanu aktywnego do nieaktywnego. Może być wywołana w określonych sytuacjach (na przykład w chwili odbywania rozmowy telefonicznej lub po otrzymaniu wiadomości SMS) bądź kiedy użytkownik kończy działanie aplikacji. Metoda rozpoczyna proces przejścia do stanu pozostania w tle. Tę metodę można wykorzystać do wstrzymania wykonywania bieżących zadań, wyłączenia liczników czasu, zmniejszenia liczby klatek generowanych przez OpenGL ES. W grach ta metoda powinna być użyta do wstrzymania gry (pauza).
   */
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
  /*
   Tę metodę należy wykorzystać do zwolnienia zasobów współdzielonych, zapisania danych użytkownika, wyzerowania liczników czasu oraz do przechowania takiej ilości informacji o stanie, która pozwoli na przywrócenie aplikacji do stanu bieżącego. Jeżeli aplikacja obsługuje działanie w tle, w chwili kończenia działania należy wywołać tę metodę zamiast applicationWillTerminate:.
   */
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
  /*
   Ta metoda jest wywoływana podczas przechodzenia aplikacji ze stanu aktywnego do działania w tle. Można więc tutaj wycofać wiele zmian wprowadzonych w chwili przechodzenia do stanu działania w tle.
   */
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  /*
   W tej metodzie można wznowić działanie zadań zatrzymanych (lub nieuruchomionych), gdy aplikacja była nieaktywna. Jeżeli aplikacja znajdowała się w trybie działania w tle, w metodzie można przeprowadzić odświeżenie interfejsu użytkownika.
   */
}

- (void)applicationWillTerminate:(UIApplication *)application
{
  /*
   Ta metoda jest wywoływana, gdy działanie aplikacji ma zostać zakończone. Zapoznaj się z opisem metody applicationDidEnterBackground:.
   */
}

@end
