Home
Add Document
Sign In
Create An Account
Beyond the Basics
Download PDF
Comment
Report
5 Downloads
346 Views
Beyond the Basics Amit Bijlani
Primitive Data Types
char int long float double
Data Type Ranges Data Type
Bytes
Range
Format
char
1
-128 to 127
%c
int
2
-32768 to 32767
%d
unsigned int
2
0 to 65535
%u
long
4
-2147483648 to 2147483647
%ld
float
4
3.4E -38 to 3.4E +38
%f
double
8
1.7E -308 to 1.7E +308
%lf
Please note these numbers are for a 16 Bit system
Primitive Data Types
Fixed Memory Automatic Storage
Storing Primitive Types
Storing Primitive Types char c;
Storing Primitive Types char c; c = ‘T’; T Address:
1000
Storing Primitive Types char c = ‘T’; T Address:
1000
Storing Primitive Types int max = 32767; 32767 Address:
1000
Pointers *
Pointers
Dynamic Memory Variable Storage
Pointers int max = 32767; !
// memory address // &max
32767 Address:
1000
Pointers int max = 32767; !
// memory address // &max !
int *p; p = &max !
// p == 1000 // *p == 32767
32767 Address:
1000
Why Pointers?
Pointers
100
int i = 100;
Address:
1000
!
increment(int x); 100 Address:
1100
Pointers
100
int i = 100; !
increment(int *x);
Address:
1000
Arrays
Arrays int primes[3]; !
// // // //
primes[0] memory address + offset
Address:
Address:
Address:
1000 1001 1002
Objective-C Alloc & Init
NSNumber NSNumber *number; !
NSNumber NSNumber *number; number = [NSNumber alloc]; Address:
1000
NSNumber NSNumber *number; number = [NSNumber alloc]; [number initWithInt:100];
100 Address:
1000
NSNumber NSNumber *number; number = [NSNumber alloc]; [number initWithInt:100]; !
// equivalent to !
NSNumber *number = [NSNumber alloc]; [number initWithInt:100]; !
// equivalent to !
NSNumber *number = [[NSNumber alloc] initWithInt:100];
Objective-C Literals @
Literals - shorthand notation
NSNumber *fortyTwo = @42; // equivalent to [NSNumber numberWithInt:42]
@“Hello”;
@“..”; @100 @[] @{}
// // // //
NSString NSNumber NSArray NSDictionary
Property Attributes
retain @property (nonatomic, strong) NSString *title;
@property (nonatomic, retain) NSString *title;
Retain Counts
Book *book1 = [[Book alloc] init];
********* 1
!
Address:
1000
Retain Counts
Book *book1 = [[Book alloc] init];
********* 2
!
Address:
1000
Book *book2 = book1;
Retain Counts
Book *book1 = [[Book alloc] init]; !
Book *book2 = book1; !
book2 = nil;
********* 1 Address:
1000
Retain Counts Book *book1 = [[Book alloc] init]; !
Book *book2 = book1; !
book2 = nil; !
book1 = nil;
0
Thank You
Recommend Documents
Mapmaking Beyond the Basics
Python - Beyond the Basics
Beyond the Basics
the basics and beyond
×
Report Beyond the Basics
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Login with Facebook
Our partners will collect data and use cookies for ad personalization and measurement.
Learn how we and our ad partner Google, collect and use data
.
Agree & Close