Sei sulla pagina 1di 49

Stanford CS193p

Desarrollo de aplicaciones para iPhone 4, iPod Touch, & iPad Fall 2010

Stanford CS193p Fall 2010

Hoy
Calculadora Declaracin e implementacin de objetos Envo de mensajes entre objetos Crear gracamente nuestra vista Conectar objetos para enviar mensajes entre ellos Seteando las propiedades de los objetos Gestin y edicin del cdigo Ejecucin de la aplicacin en el simulador
Stanford CS193p Fall 2010

MVC

Objective-C

Interface Builder

Xcode

Calculadora MVC
should will

target
did

Controller
data at count

da ta

outlet action

so u

g le de

rc e

e at

Model

View
Stanford CS193p Fall 2010

Calculadora MVC
target

Controller
outlet action

Model

View
Stanford CS193p Fall 2010

Calculadora MVC
target

Controller
outlet action

Model
CalculatorBrain

View
Stanford CS193p Fall 2010

Calculadora MVC
CalculatorViewController
target

Controller
outlet action

Model
CalculatorBrain

View
Stanford CS193p Fall 2010

Calculadora MVC
CalculatorViewController
target

Controller
outlet
La b el

action
1 X

3.21

Model
CalculatorBrain

7 4

View
+ 2

UI

UIButtons

Stanford CS193p Fall 2010

Calculadora MVC
CalculatorViewController
target

Controller
display
La b el

action
1 X

3.21

Model
CalculatorBrain

7 4

View
+ 2

UI

UIButtons

Stanford CS193p Fall 2010

Calculadora MVC
CalculatorViewController
target

Controller
display
La b el

digitPressed:

operationPressed:
1 X

3.21

Model
CalculatorBrain

7 4

View
+ 2

UI

UIButtons

Stanford CS193p Fall 2010

CalculatorBrain.h

Este es el archivo header para la clase. Documenta la API pblica.

Model

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject
Nombre de la clase.

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject
Esta es la clase padre o superclase

@end

Stanford CS193p Fall 2010

CalculatorBrain.h Debemos importar el archivo donde se encuentra nuestra clase padre.


En este caso nuestra clase padre es NSOBject.

Model

#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject {
Las variables de instancia van aqu.

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }

Las declaraciones de los mtodos van aqu.

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
void signica que este mtodo no retorna ningn valor.

- (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
El nombre de este mtodo es setOperand:

- (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
Tiene un argumento que es de tipo double llamado anOperand

- (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
No olvidar el punto y coma!

- (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;
Este mtodo retorna un double.

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;
Tiene como argumento un puntero a un objeto NSString. Estamos pasando un objeto a este mtodo.

@end

Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation; - (NSArray *)foo:(int)zap bar:(id)pow; @end
Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation; - (NSArray *)foo:(int)zap bar:(id)pow; @end
Este mtodo tiene dos argumentos y se llama foo:bar: (pronunciando foo colon bar colon)
Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation; - (NSArray *)foo:(int)zap bar:(id)pow; @end
Devuelve un puntero a un NSArray (una clase collection del framework Foundation).
Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation; - (NSArray *)foo:(int)zap bar:(id)pow; @end
El segundo argumento es de tipo id Esto signica un puntero a cualquier tipo de objeto
Stanford CS193p Fall 2010

CalculatorBrain.h

Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;

@end

Stanford CS193p Fall 2010

CalculatorBrain.m

Este es el archivo de implementacin La implementacin pblica y privada se encuentra en este archivo.

Model

#import CalculatorBrain.h @implementation CalculatorBrain

@end

Stanford CS193p Fall 2010

CalculatorBrain.m Debemos importar nuestro archivo header.

Model

#import CalculatorBrain.h @implementation CalculatorBrain

@end

Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain
Notar que en la implementacin no especicamos la superclase

@end

Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain
Sin punto y coma

- (void)setOperand:(double)anOperand {

<code goes here>

@end

Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; } @end
Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; } Los corchetes signican "enviar un mensaje" @end
Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; } @end
Este es el objeto al que se le manda el mensaje ( en este caso, el NSString llamado operation que es el que pasamos como argumento a performOperation:).
Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; Este es el mensaje que vamos a enviar } @end
Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; y en este caso se envia un argumento. } @end
Stanford CS193p Fall 2010

CalculatorBrain.m

Model
#import CalculatorBrain.h @implementation CalculatorBrain - (void)setOperand:(double)anOperand { operand = anOperand; } - (double)performOperation:(NSString *)operation { [operation sendMessage:argument]; return aDouble; } @end
Stanford CS193p Fall 2010

Controller
#import <UIKit/UIKit.h> @interface CalculatorViewController : UIViewController { CalculatorBrain * brain; } IBOutlet UILabel * display;

- (IBAction)digitPressed:(UIButton *)sender; - (IBAction)operationPressed:(UIButton *)sender; @end


Stanford CS193p Fall 2010

Controller
#import <UIKit/UIKit.h>
Nuestro controlador hereda de la clase UIViewController.

@interface CalculatorViewController : UIViewController { CalculatorBrain * brain; } IBOutlet UILabel * display;

- (IBAction)digitPressed:(UIButton *)sender; - (IBAction)operationPressed:(UIButton *)sender; @end


Stanford CS193p Fall 2010

Controller
#import <UIKit/UIKit.h> @interface CalculatorViewController : UIViewController { brain va a apuntar a nuestro CalculatorBrain * brain; } IBOutlet UILabel * display;
CalculatorBrain

Model

- (IBAction)digitPressed:(UIButton *)sender; - (IBAction)operationPressed:(UIButton *)sender; @end


Stanford CS193p Fall 2010

Controller
#import <UIKit/UIKit.h>

Este va a apuntar a nuestra

View

@interface CalculatorViewController : UIViewController { CalculatorBrain * brain; } IBOutlet UILabel * display;

- (IBAction)digitPressed:(UIButton *)sender; - (IBAction)operationPressed:(UIButton *)sender; @end


Stanford CS193p Fall 2010

Controller
#import <UIKit/UIKit.h> @interface CalculatorViewController : UIViewController Model { CalculatorBrain * brain; } IBOutlet UILabel * display;

View

- (IBAction)digitPressed:(UIButton *)sender; - (IBAction)operationPressed:(UIButton *)sender; @end


Stanford CS193p Fall 2010

CalculatorViewController.xib

Stanford CS193p Fall 2010

Files Owner es nuestro Controller


CalculatorViewController.xib
Stanford CS193p Fall 2010

Stanford CS193p Fall 2010

Stanford CS193p Fall 2010

Stanford CS193p Fall 2010

Mi primer proyecto

Una imagen (o demo) equivale a mas de 1000 palabras.

Stanford CS193p Fall 2010

Potrebbero piacerti anche