Difference between revisions of "Objective-C"
From Wikicliki
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| + | Objective-C is a superset of C language and it is called objective-c because it is a object-oriented language. It is used to build Cocoa and Cocoa Touch apps. | ||
| + | On 2 March 2013, I attended a slightly haphazard course "Become a NSZombie, Introduction to iOS" at Plug-In@Blk71. | ||
| + | |||
| + | http://30d.me/challenge/ios/ | ||
=== What one needs in order to program in Objective-C === | === What one needs in order to program in Objective-C === | ||
| Line 5: | Line 9: | ||
* Compiler (Xcode) | * Compiler (Xcode) | ||
* Program to design the interface (Interface Builder - which is now built into Xcode) | * Program to design the interface (Interface Builder - which is now built into Xcode) | ||
| − | * Debuggers (Instruments) | + | * iOS simulator (simulate apps) |
| + | * Debuggers (Instruments - monitor performance) | ||
| + | |||
| + | === Get Xcode === | ||
| + | * [https://developer.apple.com/xcode/ Download xcode] | ||
| + | |||
| + | == Basics == | ||
| + | === Data types in Objective-C === | ||
| + | * int (integer) [ObjC NSNumber] | ||
| + | * unsigned int [ObjC NSNumber] | ||
| + | * float (floating point number) [ObjC NSNumber] | ||
| + | * double (double precision) [ObjC NSNumber] | ||
| + | * char (a, b, c - single character) | ||
| + | * string ("a string") | ||
| + | * bool (true/false) | ||
| + | * arrays (NSArray) | ||
| + | * key value pair (eg: courseName = iOS) | ||
| + | |||
| + | <pre>operators still apply as expected | ||
| + | == check if equal | ||
| + | || or | ||
| + | && and | ||
| + | </pre> | ||
| + | |||
| + | === Objective C Classes === | ||
| + | Instead of calling a method you pass a message to objects. | ||
| + | A class is a collection of objects with similar behaviour and properties. Objects of same class have simlar behaviour and properties. | ||
| + | |||
| + | Most common classes: | ||
| + | * NSInteger | ||
| + | * NSNumber | ||
| + | * NSString, NSMutableString (you can modify or add things to mutables) | ||
| + | * NSSet, NSMutableSet | ||
| + | * NSArray, NSMutableArray | ||
| + | * NSDictionary, NSMutableDictionary | ||
| + | |||
| + | === Initialisation === | ||
| + | * int myInteger; | ||
| + | * int myInteger = 42; | ||
| + | * int myInteger, myInteger2, myInteger3; | ||
| + | === Operators === | ||
| + | * operators - as normally expected except there is also "modulo" | ||
| + | * % - result will be the remainder from the integer division of the 1st by the 2nd | ||
| + | * (only for int or long, insert some caveat here about floats and doubles and using [http://www.cplusplus.com/reference/cmath/fmod/ fmod]) | ||
| + | * eg: int moduloResult = a % b; | ||
| + | === NSLog === | ||
| + | String Formatters for the trace/nslog: | ||
| + | ==== Hello World ==== | ||
| + | NSLog(@"Hello World!"); | ||
| + | ==== Commenting ==== | ||
| + | |||
| + | <pre> | ||
| + | //commenting | ||
| + | |||
| + | /* a really long | ||
| + | comment */ | ||
| + | </pre> | ||
| + | |||
| + | ==== Debugging Variables ==== | ||
| + | <pre>NSLog(@" a %% b = %i", c) | ||
| + | c = b % a;</pre> | ||
| + | |||
| + | <pre>int myNum = 7; | ||
| + | NSString *myString = @"Dog"; | ||
| + | NSLog(@"The number is %i and the string is %@.", myNum, myString);</pre> | ||
| + | |||
| + | If you want a % sign you have to put in %%. | ||
| + | |||
| + | <pre>NSLog(@"%@", [NSNumber numberWithInt:i]); | ||
| + | |||
| + | %@ Object | ||
| + | %d, %i signed int | ||
| + | %u unsigned int | ||
| + | %f float/double | ||
| + | %1.2f to specific number of decimals | ||
| + | %x, %X hexadecimal int | ||
| + | %o octal int | ||
| + | %zu size_t | ||
| + | %p pointer | ||
| + | %e float/double (in scientific notation) | ||
| + | %g float/double (as %f or %e, depending on value) | ||
| + | %s C string (bytes) | ||
| + | %S C string (unichar) | ||
| + | %.*s Pascal string (requires two arguments, pass pstr[0] as the first, pstr+1 as the second) | ||
| + | %c character | ||
| + | %C unichar | ||
| + | %lld long long | ||
| + | %llu unsigned long long | ||
| + | %Lf long double | ||
| + | </pre> | ||
== See also == | == See also == | ||
| Line 13: | Line 106: | ||
* http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-day-1/ | * http://mobile.tutsplus.com/tutorials/iphone/learn-objective-c-day-1/ | ||
* http://cocoadevcentral.com/d/learn_objectivec/ | * http://cocoadevcentral.com/d/learn_objectivec/ | ||
| + | |||
| + | [[Category:Programming]] | ||
Latest revision as of 02:37, 12 July 2013
Objective-C is a superset of C language and it is called objective-c because it is a object-oriented language. It is used to build Cocoa and Cocoa Touch apps.
On 2 March 2013, I attended a slightly haphazard course "Become a NSZombie, Introduction to iOS" at Plug-In@Blk71.
Contents
What one needs in order to program in Objective-C
- Source Code Editor (Xcode)
- Compiler (Xcode)
- Program to design the interface (Interface Builder - which is now built into Xcode)
- iOS simulator (simulate apps)
- Debuggers (Instruments - monitor performance)
Get Xcode
Basics
Data types in Objective-C
- int (integer) [ObjC NSNumber]
- unsigned int [ObjC NSNumber]
- float (floating point number) [ObjC NSNumber]
- double (double precision) [ObjC NSNumber]
- char (a, b, c - single character)
- string ("a string")
- bool (true/false)
- arrays (NSArray)
- key value pair (eg: courseName = iOS)
operators still apply as expected == check if equal || or && and
Objective C Classes
Instead of calling a method you pass a message to objects. A class is a collection of objects with similar behaviour and properties. Objects of same class have simlar behaviour and properties.
Most common classes:
- NSInteger
- NSNumber
- NSString, NSMutableString (you can modify or add things to mutables)
- NSSet, NSMutableSet
- NSArray, NSMutableArray
- NSDictionary, NSMutableDictionary
Initialisation
- int myInteger;
- int myInteger = 42;
- int myInteger, myInteger2, myInteger3;
Operators
- operators - as normally expected except there is also "modulo"
- % - result will be the remainder from the integer division of the 1st by the 2nd
- (only for int or long, insert some caveat here about floats and doubles and using fmod)
- eg: int moduloResult = a % b;
NSLog
String Formatters for the trace/nslog:
Hello World
NSLog(@"Hello World!");
Commenting
//commenting /* a really long comment */
Debugging Variables
NSLog(@" a %% b = %i", c) c = b % a;
int myNum = 7; NSString *myString = @"Dog"; NSLog(@"The number is %i and the string is %@.", myNum, myString);
If you want a % sign you have to put in %%.
NSLog(@"%@", [NSNumber numberWithInt:i]); %@ Object %d, %i signed int %u unsigned int %f float/double %1.2f to specific number of decimals %x, %X hexadecimal int %o octal int %zu size_t %p pointer %e float/double (in scientific notation) %g float/double (as %f or %e, depending on value) %s C string (bytes) %S C string (unichar) %.*s Pascal string (requires two arguments, pass pstr[0] as the first, pstr+1 as the second) %c character %C unichar %lld long long %llu unsigned long long %Lf long double