Objective-C Primer(1)Get started!

鍾超發表於2012-05-06

Objective-C Primer(1)Get started!

  • Author: Michael Zhong
  • Email: zhongchao.ustc#gmail.com (# -> @)
  • Blog:blog.csdn.net/poechant
  • Date: May 6th, 2012

1 Get started! – Hello World

Before Xcode 4.2, Manual Reference Counting is required.


//
//  main.m
//  ObjectiveCTest
//
//  Created by 超 鍾 on 12-5-6.
//  Copyright (c) 2012年 http://blog.csdn.net/poechant. All rights reserved.
//

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
    NSDate* date = [[NSDate alloc] init];
    NSLog(@"The time is: %@", date);
    [date release];
    [pool drain];
    return 0;
}

However, from Xcode version 4.2, it’s very easy to handle your memory management and avoid to leak memory. Auto Reference Counting(ARC) is optional when you create a project.


//
//  main.m
//  ObjectiveCTest
//
//  Created by 超 鍾 on 12-5-6.
//  Copyright (c) 2012年 http://blog.csdn.net/poechant. All rights reserved.
//

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    
    NSDate* date = [[NSDate alloc] init];
    NSLog(@"The time is: %@", date);
    return 0;
}

Then how to switch ARC and MRC? When you are setting project properties, you will find that there is an option about Apple LLVM compiler 3.0 - language / Objective-C Automatic Reference Counting.

2 Basic types

How to output basic types is always one of the first several things people concerns.


// Variables of basic type
int             intVal          = 10;
double          doubleVal       = 3.21;
float           floatVal        = 9.87;
unsigned long   unsignedLongVal = 12345678;
NSInteger       nsIntegerVal    = 998877;
char            charVal         = 'a';

// Output
NSLog(@"Hello, World!");
NSLog(@"%d", intVal);
NSLog(@"%lf", doubleVal);
NSLog(@"%f", floatVal);
NSLog(@"%ld", unsignedLongVal);
NSLog(@"%ld", nsIntegerVal);
NSLog(@"%c", charVal);
NSLog(@"The time is: %@", date);

As you see, it’s similar to C language. But you should use%@for outputing a string instead of%s.

3 How to define and implement a class?

As we know, Objective-C is an Object-oriented language. Thus, you can make your own class. The following program is a complete one, which shows how to define a class.


//
//  TestClass.h
//  ObjectiveCTest
//
//  Created by 超 鍾 on 12-5-6.
//  Copyright (c) 2012年 http://blog.csdn.net/poechant. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface TestClass : NSObject
{
    int foo;
}
@property (nonatomic) int foo;
-(void)someMethod;
@end

@interfaceidentifier is used for define a class. The way of deriving is similar to C++. Usepropertykeyword to indicate a member field. Use-to define a member method (or funciton) prototype.

This following program tells you how to implement a class.


//
//  TestClass.m
//  ObjectiveCTest
//
//  Created by 超 鍾 on 12-5-6.
//  Copyright (c) 2012年 http://blog.csdn.net/poechant. All rights reserved.
//

#import "TestClass.h"

@implementation TestClass
@synthesize foo;

-(void)someMethod
{
    NSLog(@"some method got called");
}
@end

implementationis used for implementing the class.

4 Try to invoke the method you define in a class

It’s very easy as well.


TestClass *test = [[TestClass alloc] init];
[test someMethod];
[test release];

-

轉載請註明來自柳大的CSDN部落格:blog.csdn.net/poechant

-

相關文章