OC基础
2015-08-16 21:43
225 查看
一 OC简介
oc代码完全兼容c语言可以在OC代码中混入C语言代码,甚至是C++代码
编译:cc -c xxx.m
链接:cc xxx.m
执行:./xxx.out
可以使用OC开发Mac OS X平台和iOS平台的应用程序
二 OC语法预览
1 关键字
基本上所有关键字都是以@开头下面列举一些常见的关键字: @interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class @property、@synthesize、@dynamic
self、super、id、_cmd、__block、__strong、__weak、
2 字符串以@开头
比如@”Hello”是OC中的字符串,而”Hello”则是C语言中的字符串3 其他语法
三 OC程序的开发过程
实例1
1.打开终端,建立第一个.m文件touch 01.m open 01.m #默认以xcode打开
写入01.m,oc程序入口,和c一模一样
#include<stdio.h> //完全兼容c语言可以使用include //oc程序入口 int main() { printf("这里使用了c语言的printf\n");//完全兼容c语言可以使用printf,printf不会自动换行需要加\n return 0; }
命令行终端编译01.m文件:
cc -c 01.m
查看01.m的同级目录多出了一个01.o的文件。
命令行终端链接文件:
cc 01.o
查看同级目录多出了一个01.out文件。
命令行执行程序文件:
./a.out
输入结果:这里使用了c语言的printf
实例2
1 import作用:跟include一样,拷贝文件内容
自动防止文件重复引入
2
NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
NSLog输出后会自动换行,printf输出后不会自动换行
使用NSLog需要#import
#import<Foundation/NSObjCRuntime.h> //包含NSLog的包 int main() { //NSLog输出会自动换行 NSLog(@"我是用NSLog输出的字符串"); return 0; }
编译,链接,执行:
cc -c 02.m cc 02.o -Framework Foundation#这里必须添加上框架名称,否则无法链接 ./02.out
输出:我是用NSLog输出的字符串
如链接的时候出现错误:no such file or directory: ‘Foundation’
可用
gcc -o 02 02.m -framework Foundation,具体说明参见:Compile Objective-C Programs Using gcc
实例3
多个.m文件的开发:1 打开终端
mkdir muti cd muti touche one.m open one.m
2 写入one.m
#import <Foundation/Foundation.h> void test() { NSLog(@"调用了test函数"); }
3 main.m
#import "one.h" int main() { test(); return 0; }
4 one.h
#import <Foundation/Foundation.h> void test() { NSLog(@"调用了test函数"); }
5 编译,链接,运行
cc –c main.m test.m #编译 cc main.o test.o –framework Foundation #链接 ./a.out #运行
输出:调用了test函数
实例4
相关文章推荐
- vmware下克隆系统
- android onTouchEvent 左右手势滑动事件处理
- 复制一个Dialog后DoModal()返回-1
- c 语言 逆波兰计算器 C语言程序设计中的例子
- c++继承与派生
- Microsoft Dynamics server 2015 所有的SQL server 2012 视图 介绍及功能
- Microsoft Dynamics server 2015 所有的SQL server 2012 视图 介绍及功能
- linux shell 管道命令(pipe)使用及与shell重定向区别
- hdu 1507 Uncle Tom's Inherited Land* (二分匹配)
- POJ 1942 Paths on a Grid
- Leetcode: Binary Tree Paths
- 无稳态多谐振荡器分析
- sql语句优化
- spring SSH整合
- 黑马程序员——Java基础--网络编程
- Eclipse打开xml文件报校验错误解决办法
- 华为OJ(人民币转换)
- Java类的第五个成员:内部类
- 应用策略设计模式
- leetcode 129: Sum Root to Leaf Numers