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
-
相關文章
- GCC內聯彙編(1)Get startedGC
- Get Started with EC2
- Objective-C中get/set方法初探(1)Object
- FastDFS的配置、部署與API使用解讀(1)Get Started with FastDFSASTAPI
- Get Started:Mac下搭建PHP開發環境MacPHP開發環境
- Objective-C Primer(2)Private Methods and Class PropertiesObject
- buuctf-pwn-get_started_3dsctf_20163D
- [轉帖]Get started with JDK Flight Recorder in OpenJDK 8uJDK
- Objective-C Primer(3)Multiple arguments for one method, synthesize and dynamicObject
- Objective-C中get/set方法初探(2)Object
- Android TV-Building TV Apps,Get Started with TV AppsAndroidUIAPP
- C++ Primer Plus隨記1C++
- flutter packages get - pub get failed (1)解決方案FlutterPackageAI
- Beaglebone - Getting Started
- PHP/MySQL Dev. Primer (1) Establish Env.PHPMySqldev
- getting started with transformjsORMJS
- Windows HLK Getting StartedWindows
- Oracle Management Server Could Not Be StartedOracleServer
- Hive Getting Started補充Hive
- OpenRTMFP/Cumulus Primer(17)AMF解析之AMFReader(續1)
- OpenRTMFP/Cumulus Primer(5)CumulusServer啟動流程分析(續1)Server
- OpenRTMFP/Cumulus Primer(1)入門介紹與部署CumulusServerServer
- Torch - 1 -- Install and Get Start on Ubuntu 12Ubuntu
- Objective-C Runtime 1小時入門教程Object
- TensorFlow - 1 - Install and get start on Ubuntu 12Ubuntu
- Erlang Primer (1) Mac OS X 上配置 Erlang 開發環境Mac開發環境
- Firebase Tutorial: Getting Started 教程翻譯
- Effective Objective-C 2.0 Tips 總結 Chapter 1 & Chapter 2ObjectAPT
- python的__get__、__set__、__delete__(1)Pythondelete
- A Hadoop PrimerHadoop
- C++primer1-7章知識點總結——sizeof運算子C++
- Redis Primer(1)基於JedisPool的Redis hset併發效能測試Redis
- 優雅地亂玩Redux: Getting StartedRedux
- objective-c @()Object
- Objective-CObject
- C++primer1-7章知識點總結——顯示轉換C++
- How To Stop A Running Datapump Job Started In Background [ID 958532.1]
- Objective-C PropertyObject