Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Desarrollo de aplicaciones para iPhone 4, iPod Touch, & iPad 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
Calculadora MVC
CalculatorViewController
target
Controller
display
La b el
action
1 X
3.21
Model
CalculatorBrain
7 4
View
+ 2
UI
UIButtons
Calculadora MVC
CalculatorViewController
target
Controller
display
La b el
digitPressed:
operationPressed:
1 X
3.21
Model
CalculatorBrain
7 4
View
+ 2
UI
UIButtons
CalculatorBrain.h
Model
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject
Nombre de la clase.
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject
Esta es la clase padre o superclase
@end
Model
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject {
Las variables de instancia van aqu.
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; } - (void)setOperand:(double)anOperand; - (double)performOperation:(NSString *)operation;
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
void signica que este mtodo no retorna ningn valor.
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
El nombre de este mtodo es setOperand:
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
Tiene un argumento que es de tipo double llamado anOperand
@end
CalculatorBrain.h
Model
#import <Foundation/Foundation.h> @interface CalculatorBrain : NSObject { double operand; }
No olvidar el punto y coma!
@end
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
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
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
CalculatorBrain.m
Model
@end
Model
@end
CalculatorBrain.m
Model
#import CalculatorBrain.h @implementation CalculatorBrain
Notar que en la implementacin no especicamos la superclase
@end
CalculatorBrain.m
Model
#import CalculatorBrain.h @implementation CalculatorBrain
Sin punto y coma
- (void)setOperand:(double)anOperand {
@end
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;
Controller
#import <UIKit/UIKit.h>
Nuestro controlador hereda de la clase UIViewController.
Controller
#import <UIKit/UIKit.h> @interface CalculatorViewController : UIViewController { brain va a apuntar a nuestro CalculatorBrain * brain; } IBOutlet UILabel * display;
CalculatorBrain
Model
Controller
#import <UIKit/UIKit.h>
View
Controller
#import <UIKit/UIKit.h> @interface CalculatorViewController : UIViewController Model { CalculatorBrain * brain; } IBOutlet UILabel * display;
View
CalculatorViewController.xib
Mi primer proyecto