Difference between revisions of "Objective-C"

From Wikicliki
Jump to: navigation, search
 
(15 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 4: 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 ===
 
=== 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 15: 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.

http://30d.me/challenge/ios/

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

See also