Objective-C Primer(1)Get started!
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
@interface
identifier is used for define a class. The way of deriving is similar to C++. Useproperty
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
-