Objective-C 笔记一(HelloWorld)
作为一个果粉And程序员,奔着对OC浓厚的兴趣,开始学习IOS。并以后也想从事IOS开发工作。并将自己的学习记录下来,俗话说的好,不会总结的程序猿,不是好程序员!
Xcode可以在AppStore里下载
打开Xcode 选择箭头所指:
这里我们先选择 OS X 的Application 的Command Line Tool(控制台程序):
点击Next:
这里我们输入项目名称等一些信息,随便写也可以:
点Next
然后会让你选择存储项目的文件夹,这里我选的桌面,然后点Create:
Ok,虽然还没做什么,但HelloWorld就搞定了。
用快捷键command+R就可以运行了
扩展名 | 含义 | 扩展名 | 含义 |
.c | C语言原文件 | .mm | Objective-C++源文件 |
.cc、.cpp | C++语言原文件 | .pl | Perl源文件 |
.h | 头文件 | .o | Object(编译后的)文件 |
.m | Objective-C源文件 |
#import <Foundation/Foundation.h>
这是一个系统文件,也就是说,这个文件不是你创建的。#import 表示将该文件的信息导入或包含到程序中,就像在这里输入该文件的内容。要导入文件Foundation.h,因为它包含其他类和函数有关信息。
int main (int argc,const char * argv[])
main是一个特殊名称,用于准确地表示程序将在何处开始执行(应该和Java的main方法一样)。main之前的保留字int指定main返回的值类型为整型。
@autoreleasepool{}
花括号里的程序语句会在被称为“自动释放池(autoreleasepool)”的语境中执行。自动释放池的机制是:它使得应用在创建新对象时,系统能够有效的管理应用所使用的内存。
NSLog是一个函数,它仅仅显示或记录其参数(或者参数列表)。但是之前它会显示该函数的执行日期和时间、程序名,以及其他...
return 0;它表示要终止main的执行并发送回(或返回)一个状态值0,按照约定,0意味着程序的正常结束。任何非零值通常表示出现了一些问题。
下面是以下实例:创建一个类取名Fraction
#import <Foundation/Foundation.h> @interface Fraction : NSObject -(void) print; -(void) setNumerator :(int) n; -(void) setDenominator:(int) d; -(int) numberator; -(int) denominator; @end
#import "Fraction.h" @implementation Fraction { int numberator; int denominator; } -(void) print{ NSLog(@"%i/%i",numberator,denominator); } -(void) setNumerator:(int)n{ numberator = n; } -(void) setDenominator:(int)d{ denominator = d; } -(int) numberator { return numberator; } -(int) denominator { return denominator; } @end //----program 部分---- #import <Foundation/Foundation.h> int main (int argc,const char * argv[]) { @autoreleasepool { //创建一个分数实例 alloc分配空间 init初始化 myFraction = [[Fraction alloc] init]; //myFraction = [myFraction init]; //Fraction *fact = [[Fraction alloc] init]; //设置分数为1/3 [myFraction setNumerator:1]; [myFraction setDenominator:3]; // [fact setDenominator:3]; // [fact setNumerator:7]; //使用打印方法显示分数 NSLog(@"The value of myFraction is: %i/%i",[myFraction numberator],[myFraction denominator]); //[myFraction print]; // // NSLog(@"Second fraction is:"); // [fact print]; } return 0; }
以后会介绍%i(类似C#的占位符),是NSLog字符,用来取int值。
代码是我练习写的,涉及了下一章节的类、对象和方法,因为有java和C#的基础,OC这些学起来都差不多,就是语法不一样。总之很喜欢OC!