零基础Objective-C 第二章————–对C的扩展
每门语言好像都是从Hello World开始的,当然我这边也不例外啦,先开始构建Hello Objective-C程序
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!");
}
return 0;
}
command + r 运行下输出
2017-06-17 22:16:24.792729+0800 Hello[3667:2592068] Hello, World!
Program ended with exit code: 0
源文件的 扩展名.m代表message , 指的是Objective-C的一个特性
解构Hello Objective-C 程序
1.#import语句
和C语言一样, 使用头文件来包含结构体 符号常量和函数原型等元素的声明
#import是由Xcode使用的编译器提供的,保证头文件只被包含一次
#import < Foundation/Foundation.h>告诉编译器查找Foundation框架中
Foundation.h头文件
2.框架
框架是一种把头文件 库 图片 声音等内容聚集在一个独立单元中的集合体
每个框架都有一个主头文件,它包含了框架内所有的头文件。通过在主头文件中使用#import,就可以访问框架内所有功能。
NSLog()和@”字符串”
Cocoa给的特性
a.避免名称冲突的NS前缀(工具包NextSTEP,NeXT Software公司 )
b.NSSring:@是本体 (@符号 字符串作为Cocoa的NSSring的元素来处理)return 0 返回值为0 程序成功执行完了
布尔类型
#import <Foundation/Foundation.h>
BOOL areIntsDifferent(int thing1, int thing2){
if (thing1 == thing2){
return NO;
}else{
return YES;
}
}
NSString *boolString(BOOL yesNo){
if(yesNo == NO){
return (@"NO");
}else{
return (@"YES");
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
BOOL areTheyDifferent;
areTheyDifferent = areIntsDifferent(5, 5);
NSLog(@"are %d and %d different? %@",
5,5,boolString(areTheyDifferent));
areTheyDifferent = areIntsDifferent(4, 5);
NSLog(@"are %d and %d different? %@",
4,5,boolString(areTheyDifferent));
}
return 0;
}
输出结果
2017-06-17 23:21:21.355649+0800 Hello[4125:2686526] are 5 and 5 different? NO
2017-06-17 23:21:21.355769+0800 Hello[4125:2686526] are 4 and 5 different? YES
Program ended with exit code: 0
1.第一个函数
Obective-C中BOOL值 只有YES NO
YES 整型表示 1
NO 整型表示 0
2.第二个函数
返回值类型是一个指向NSString的指针
3.比较
%@格式说明符 输出任意对象
本章小结
编写了两个小程序,#import NSString NSLog() 格式占位符%@ BOOL类型