本小节知识点
- 如何创建Objective-C项目
- 对比#import和#include区别
- NSLog 和printf区别
- “@”的使用方法
- NS前缀
如何创建Objective-C项目
创建工程


![select object-c]
查看结果运行结果
#import 和 #include区别
#import与#include的类似,都是把其后面的文件拷贝到该指令所在的地方
#import可以自动防止重复导入
#import <> 用于包含系统文件
#import""用于包含本项目中的文件
#import , 告诉编译器找到并处理名为Foundation.h文件,这是一个系统文件,#import表示将该文件的信息导入到程序中。
框架地址: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneO S.sdk/System/Library/Frameworks/
NSLog 和printf区别
NSLog是Foundation框架供的Objective-C日志输出函数,与标准C中的printf函数类似,并可以格式化输出。
NSLog传递进去的格式化字符是NSString的对象,而不是char *这种字符串指针
NSLog输出的内容中会自动包含一些系统信息
NSLog输出的内容会自动换行
//NSLog声明在NSObjCRuntime.h中
//声明:void NSLog(NSString *format, ...);
NSLog(@"this is a test"); //打印一个字符串
NSString *str = @"hello chendehao!";
NSLog(@"string is:%@",str);//使用占位符,%@表示打印一个对象,%@ OC特有的
NSLog(@"x=%d, y=%d",10,20);//使用多个占位符,%d表示整型数
“@”的使用方法
@"" 这个符号表示将一个C的字符串转化为OC中的字符串对象NSString.
@符号 OC中大部分的关键字都是以@开头的,比如@interface,@implementation,@end @class等。
NS前缀
NS来自于NeXTStep的一个软件 NeXT Software
OC中不支持命名空间(namespace)
NS是为了避免命名冲突而给的前缀
看到NS前缀就知道是Cocoa中的系统类的名称
问题1:#import和#include有什么区别?
答:
1.import 的功能和 include一样, 是将右边的文件拷贝到当前import的位置.
2.import作用:为了降低程序员的负担, 防止重复导入, 避免程序员去书写头文件卫士
3.import优点: 会自动防止重复拷贝
问题2:printf和NSLog有什么区别?
答:
1.NSLog会自动换行
2.NSLog在输出内容时会附加一些系统信息
3.NSLog和printf接收的参数不一样
问题3:Foundation有什么作用?
答:Foundation.h我们称之为主头文件, 主头文件中又拷贝了该工具箱中所有工具的头文件, 我们只需要导入主头文件就可以使用该工具箱中所有的工具, 避免了每次使用都要导入一个对应的头文件
工具箱的地址: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
规律: 所有的主头文件的名称都和工具箱的名称一致,所有的主头文件都是导入了该工具箱中所有工具的头文件