IOS基础之 (一) OC基础语法
一 OC语法
1.关键字
基本上所有关键字都是以@开头,比如:
@interface , @implementation, @end, @public, @protected, @private
2.字符串以@开头
比如 @"hello"是OC中的字符串,而"hello"是C中的字符串。
3.其他语法
1) 基本数据类型: char , int , float, dobule, BOOL(YES/NO)
2) nil : 相当于C语言中的NULL,也就是0
3) 基本语句 :循环语句( do while, while , for )
条件语句 ( if , if else, switch )
4) 注释 : // 和 /* */
5) 屏幕输出:
NSLog(@"Hello");
NSLog(@"age is %d" , 20);
4.OC 程序的开发过程
与C语言类似:
二 第一个OC程序
1 新建一个OC程序 main.m
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {
NSLog(@"Hello World !"); return ;
}
第1行代码 #import 的用途:
1.跟#include一样,拷贝文件的内容。
2.可以自动防止文件的内容被重置拷贝。
3.包含Foundation 框架的主头文件就可以使用整个框架。
2 输入编译指令,编译main.m 文件
打开终端,输入以下命令,然后按回车:
cc -c main.m -framework Foundation
输入指令后,如果没有显示异常,说明编译成功了,会在终端所在目录编译生成main.o,成为"目标文件",文件后缀为".o",目标文件名与源文件名一致。这样main.m文件编译成功为就生成了main.o文件。
3 链接目标代码
源文件编译成功后,会生成一个.o目标文件,还不能运行。需要组合所有的目标文件,还需要将OC语言的函数库包含进来,才能生成可执行文件。
注意:将所有相关联的.o目标文件,以及OC语言的函数库组合在一起生成可执行文件的过程,称之为"链接"。
在终端中输入以下命令,如果需要同时链接多个目标文件,这样写:cc one.o two.o three.o -framework Foundation
cc main.o -framework Foundation
链接成功后会生成一个可执行文件,默认的文件名为"a.out"。
4 运行程序
在终端中输入以下命令,按回车就可以运行程序了。a.out就是可执行文件的名称。
./a.out
三 第二个OC程序
OC中的BOOL和C语言中的 boolean 是一样的,在O语言中,非0即为真。在OC语言中,YES(真)为,NO(假)为。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { BOOL b1 = YES;
BOOL b2 = NO;
BOOL b3 = ;
BOOL b4 = ; NSLog(@"b1=%d",b1);
NSLog(@"b2=%d",b2);
NSLog(@"b3=%d",b3);
NSLog(@"b4=%d",b4); return ;
}
运行代码,得到以下结果:
-- ::41.127 T1[:] b1=
-- ::41.128 T1[:] b2=
-- ::41.128 T1[:] b3=
-- ::41.128 T1[:] b4=
Program ended with exit code:
四 练习
1. 练习1 for循环打印 1-200内不能被3整除的数
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {
@autoreleasepool { //for循环打印 1-200内不能被3整除的数
printf("这些数不能被3整除: \n");
for(int i=; i<=; i++){
if( i% != ){
printf(" %d " , i);
}
}
}
return ;
}
获得结果如下:
2.练习2 用for循环打印,乘法口诀表
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {
@autoreleasepool {
//用for 循环打印 乘法口诀表
for(int i=; i<=; i++){
for (int j= ; j <=i ; j++){
printf(" %d * %d = %d", i , j , i*j);
}
printf("\n");
} }
return ;
}
获得结果如下:
五 补充知识
1 Foundation框架的位置:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Libray/Frameworks/Foundation.framework/Headers
编译部分参考:
http://www.cnblogs.com/mjios/archive/2013/05/06/3062576.html
IOS基础之 (一) OC基础语法的更多相关文章
- [Objective-c 基础 - 2.2] OC弱语法、类方法
A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误 B.类方法 1.是类名调用的方 ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- 【OC基础语法考试】
OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- ios开发之OC基础-类和对象
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- ios开发之OC基础-oc小程序
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- ios开发之OC基础-ios开发学习路线图
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- OC基础 点语法的使用
OC基础 点语法的使用 1.创建一个Student类继承于NSObject,Student.h文件 #import <Foundation/Foundation.h> @interface ...
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
随机推荐
- PHP安装memcache扩展接口步骤
1.将php_memcache.dll文件保存到php的应用程序扩展ext目录中 2.在php.ini配置文件添加扩展的位置,加入一行extension=php_memcache.dll 3.重新启动 ...
- js中的垃圾回收机制
代码回收规则如下: 1.全局变量不会被回收. 2.局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁. 3.只要被另外一个作用域所引用就不会被回收 (闭包)
- import javax.servlet.FilterConfig;
具体的使用方法你可以在google上搜索 “filter 过滤器”,FilterConfig可以获取部署描述符文件(web.xml)中分配的过滤器初始化参数.针对你的问题回答,结果就是说FilterC ...
- Linux Linux程序练习五
题目:编写两个进程a和b,利用共享内存技术,a向共享内存写字符串,b将从共享内存中读到的字符串在屏幕上打印出来. //创建共享内存区 #include <stdio.h> #include ...
- no2.crossdomain.xml批量读取(待完善)
读取太多url有问题 #coding=utf-8 import urllib import requests import sys import re import time def getxml(u ...
- 大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)
大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)大前端时代已经到来!如今,前端开发工程师的职责,不是只有切图.制作网页这么简单哦! G:\传智播客2015-WEB前端视频教 ...
- 创建Maven工程
一.Maven工程创建 File->New->Other,进入: 点击Next,进入: 勾选上Create a simple project(不使用骨架) 点击Next,进入: 输入项目名 ...
- Opencv step by step - 自适应阈值
上个博客提到的阈值化只是针对图像全局进行阈值化,opencv提供了一个更好的函数cvAdaptiveThreshold,可以做到局部特征的阈值化,这样一来, 整个图像的信息可以被更好的提取. #inc ...
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...
- [转]MySQL5.5 my.cnf配置参考
主要配置参数转载自: http://www.linuxyw.com/a/shujuku/20130506/216.html 并稍微做了修改MyISAM部分以适应当前的环境 此配置是老男孩生产线上使用的 ...