Objective-C Primer(1)Get started!

Objective-C Primer(1)Get started!

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

@interface identifier is used for define a class. The way of deriving is similar to C++. Use property keyword 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

implementation is 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

-

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值