objective-c primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include...
TRANSCRIPT
![Page 1: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/1.jpg)
iOSObjective-C Primer
![Page 2: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/2.jpg)
barnesandnoble.com
![Page 3: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/3.jpg)
barnesandnoble.com
![Page 4: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/4.jpg)
![Page 5: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/5.jpg)
![Page 6: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/6.jpg)
developer.apple.com
![Page 7: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/7.jpg)
iOS Dev Centerhttps://developer.apple.com/devcenter/ios/
![Page 8: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/8.jpg)
C
![Page 9: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/9.jpg)
#include <stdio.h>
int main(int argc, const char * argv[]){ printf("Hello, World!\n"); return 0;}
![Page 10: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/10.jpg)
statementsprintf("Hello, World!\n");
![Page 11: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/11.jpg)
variablesint n;
![Page 12: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/12.jpg)
Primitive Data Typeschar
double
float
int
long
unsigned int
...
![Page 13: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/13.jpg)
printf
%s
%d
%lu
%lld
%f
...
![Page 14: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/14.jpg)
Boolean Expressions! > >= == <= < && ||
![Page 15: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/15.jpg)
Conditionsif else
![Page 16: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/16.jpg)
Loops
![Page 17: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/17.jpg)
for (initialization; condition; increment) {
statements
}
![Page 18: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/18.jpg)
while (condition) {
statements
}
![Page 19: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/19.jpg)
do {
statements
} while (condition);
![Page 20: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/20.jpg)
Casting( )
![Page 21: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/21.jpg)
Pointers
char *
double *
float *
int *
long *
...
![Page 22: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/22.jpg)
struct
![Page 23: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/23.jpg)
enum
![Page 24: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/24.jpg)
Arrays[ ]
![Page 25: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/25.jpg)
Memory Managementmalloc free
![Page 26: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/26.jpg)
Objective-C
![Page 27: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/27.jpg)
Data Types
BOOL
id
nil
...
![Page 28: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/28.jpg)
Foundation Data Types
NSInteger
NSPoint
NSRect
NSSize
NSUInteger
...
![Page 29: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/29.jpg)
.h
@interface Foo: NSObject {
// instance variables
}
// declarations of methods
@end
![Page 30: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/30.jpg)
.m
@implementation Foo
// definitions of methods
@end
![Page 31: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/31.jpg)
Instance Variables
@protected
@private
@public
![Page 32: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/32.jpg)
Class Methods
+alloc;
![Page 33: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/33.jpg)
Messages
Student *student = [Student alloc];
![Page 34: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/34.jpg)
Instance Methods
-‐ (int)age;
-‐ (void)setAge:(int)age;
-‐ (void)init;
-‐ (void)initWithName:(NSString *)name andAge:(int)age;
![Page 35: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/35.jpg)
Messages
[student age];
[student setAge:20];
[student init];
[student initWithName:@"Alice" andAge:20];
![Page 36: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/36.jpg)
Selectors
alloc
agesetAge:
initinitWithName:andAge:
![Page 37: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/37.jpg)
@propertyassigncopystrongweak
atomicnonatomic
readonlyreadwrite
![Page 38: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/38.jpg)
@synthesize
![Page 39: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/39.jpg)
Collections
NSArrayNSMutableArray
NSDictionaryNSMutableDictionary
NSSetNSMutableSet
...
![Page 40: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/40.jpg)
Fast Enumeration
for (id foo in bar) {
// do something with foo
}
![Page 41: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/41.jpg)
Categories
@interface Foo (Bar)
-‐(void)baz;
@end
![Page 42: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/42.jpg)
Protocols
@interface Student <NSCopying> {}
...
@end
![Page 43: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/43.jpg)
Protocols@implementation Student
...
-‐(id)copyWithZone:(NSZone *)zone{ Student *s = [Student allocWithZone:zone]; [s initWithName:_name andAge:_age]; return s; }
...
@end
![Page 44: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/44.jpg)
NSException
@try {
// try something here
}
@catch (NSException *e) {
// handle exception here
}
@finally {
// do something here}
![Page 45: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/45.jpg)
NSError
NSError *e = nil;if ([foo bar:baz error:&e] == nil){ // handle error}
![Page 46: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/46.jpg)
MVC
http://developer.apple.com/library/ios/documentation/iphone/conceptual/iPhone101/Articles/02_DesignPatterns.html
![Page 47: Objective-C Primercdn.cs76.net/2012/spring/lectures/7/lecture7-malan.pdf · #include intmain(intargc,constchar*argv[]) {printf("Hello,World!\n"); return0;}](https://reader031.vdocuments.net/reader031/viewer/2022022602/5b560c697f8b9ac5358c4d59/html5/thumbnails/47.jpg)
to be continued...