1、常见文件扩展名

	.c               C 语言源文件
.cc、.cpp C++ 语言源文件
.m Objective-C 源文件
.mm Objective-C++ 源文件
.h 头文件
.pl Perl 源文件
.o Object(编译后的)文件 .app 可运行的应用程序(相当于 windows 中的 .exe)
.dmg OS X 上的光盘文件压缩包(相当于 windows 中的 ISO)
.pkg OS X 应用程序安装包(相当于 windows 中的 exe\msi 等)
.ipa iOS 应用程序安装包(安装到 iPhone\iPad 等设备上面) .xcodeproj Xcode 的项目文件(双击可直接打开整个项目)
.xcworkspace Xcode 工作空间文件
.plist 用于储存用户设置(类似于 windows 下的 .ini)
.bundle 可认为是压缩后的文件夹(一种压缩文件)

2、命名规范

  • 按照约定,类名以大写字母开头,尽管没有要求这么做。

  • 实例变量、对象以及方法的名称,通常以小写字母开头。为了使程序具有可读性,名称中要用大写字母表示新单词的开头。

  • 一些程序员还使用下划线作为单词的分隔符。

  • 在 OC 中小写字母和大写字母是有区别的。

3、OC 数据类型

	char :	字符型
int : 整型 %zi 可打印无符号整形(NSUInteger)数据。%li 可打印有符号整形(NSInteger)数据。 float : 浮点型
double : 双浮点型 BOOL: 布尔型 YES、NO id : 通用的对象类型,可以存储任何类型的对象,从某种意义说,它是一般对象类型。 保存 OC 中任意对象的指针(void *): 泛型指针,保存任意类型的指针变量。
类型转换运算符通常用于将一般 id 类型的对象转换成特定类的对象。 instancetype :
instancetype 在类型表示上,跟 id 一样,可以表示任何对象类型。
instancetype 只能用在返回值类型上,不能像 id 一样用在参数类型上。
instancetype 比 id 多一个好处:编译器会检测 instancetype 的真实类型。 enum :枚举。在 OC 中可以将一系列值指派给一个变量。
如:enum flag{false, true}; 要声明一个枚举类型的变量,仍需要用到关键字 enum,之后是枚举的类型名,最后是变量序列。
如:enum flag endOfData = true; 定义枚举数据类型时,可以省略数据类型的名称,定义类型可以将变量声明为特定枚举数据类型中的一个。
如:enum {false, true} endOfData; 枚举标识符可以共享相同的值。
如:enum boolean {no = 0, false = 0, yes = 1, true = 1}; OC 编译器实际上将枚举标识符作为整形常量来处理。 typedef:定义数据类型。 OC 允许编程者为数据类型另外指派一个名称。在这种情况下使用 typedef 语句的主要好处是增加了变量定义的可读性。

4、运算符

  • 1)位运算:位运算符可处理任何类型的整形值,但不能处理浮点值。

    • 按位与运算符:经常用于屏蔽预算,该运算符可以轻易的将数据项的特定位设置为 0 。
    • 按位或运算符:通常称为按位 OR,用于将数据项的特定位设为 1 。
    • 按位异或运算符:通常称为 XOR,不同为 1 ,相同为 0 。
    • 一次求反运算符:对运算数的位翻转。
    • 左移位运算符:超出数据项的高位的位将丢失,而从低位移入的值总为 0 。
    • 右移位运算符:从值的低位移出的位将丢失。把无符号的值向右移位总是左侧移入 0 。对有符号的值而言,如果符号位是 0(表示该值为正的),将移入 0;

      如果符号位是 1,那么在一些计算机上将移入 1(算数右移),而其他计算机上将移入 0(逻辑右移)。
  • 2)运算函数:

    • 开平方函数:

      	double sqrt(double);

5、表达式

  • 1)循环结构

    	for          语句
    while 语句
    do … while 语句
    for … in 语句 break
    continue
  • 2)选择结构

    	if         语句
    switch 语句 … ? … : 条件运算语句,从右往左结合,可多极嵌套使用。 Xcode 支持如下多级运算符的非 ANSI 扩展语句:
    condition ? : expression 在这个语句中对 condition 求值,若为 YES 则返回值为 condition 。
    若 condition 值为 NO ,则返回值为 expression 。

6、程序编译

  • 1)预处理

    • 预处理程序实际上是在分析 OC 程序之前先处理这些语句。预处理程序语句使用井号(#)标记,这个符号必须是一行中的第一个非空格字符。

      	#define :给符号名称指定程序常量
      #import :文件包含
      #ifdef、#endif、#else、#ifndef、#if、#elif :条件编译
      #undef :消除特定名称的定义

7、堆和栈的区别

  • 堆需要用户手动释放内存,而栈则是编译器自动释放内存

iOS - OC 基本语法的更多相关文章

  1. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  2. iOS开发——OC篇&OC高级语法

    iOS开发高级语法之分类,拓展,协议,代码块详解 一:分类 什么是分类Category? 分类就是类的补充和扩展部分 补充和扩展的每个部分就是分类 分类本质上是类的一部分 分类的定义 分类也是以代码的 ...

  3. 李洪强iOS开发之OC点语法和变量作用域

    OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Per ...

  4. 【OC基础语法考试】

    OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...

  5. OC点语法和变量作用域

    OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: #import <Foundation/Foundation.h> @interface Person : ...

  6. [Objective-c 基础 - 2.2] OC弱语法、类方法

    A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误   B.类方法 1.是类名调用的方 ...

  7. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  8. iOS OC语言原生开发的IM模块--RChat

    iOS OC语言原生开发的IM模块,用于项目中需要原生开发IM的情况,具备发送文字.表情.语音.图片.视频等完整功能,包含图片预览视频播放等功能,此项目将会长期更新如有问题可以提出,我的邮箱:fshm ...

  9. 【Objective-C】1.oc点语法

    在Java中,我们可以通过"对象名.成员变量名"来访问对象的公共成员变量,这个就称为"点语法".比如: 1.在Student类的第2行定义了一个公共的成员变量a ...

随机推荐

  1. Temporary TempDB Tables [AX 2012]

    Temporary TempDB Tables [AX 2012] 1 out of 4 rated this helpful - Rate this topic Updated: November ...

  2. 快速搭建Redis缓存数据库

    之前一篇随笔——Redis安装及主从配置已经详细的介绍过Redis的安装于配置.本文要讲的是如何在已经安装过Redis的机器上快速的创建出一个新的Redis缓存数据库. 一.环境介绍 1) Linux ...

  3. iOS身份证的正则验证

    在ios项目的开发中可能很多地方都需要用到身份证校验,一般在开发的时候很多人都是直接百度去网上荡相关的正则表达式和校验代码,但是网上疯狂粘贴复制的校验代码本身也可能并不准确,可能会有风险,比如2013 ...

  4. POJ 3580:SuperMemo(Splay)

    http://poj.org/problem?id=3580 题意:有6种操作,其中有两种之前没做过,就是Revolve操作和Min操作.Revolve一开始想着一个一个删一个一个插,觉得太暴力了,后 ...

  5. ACM题目————数素数

    令Pi表示第i个素数.现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到PN的所有素数 ...

  6. 关于数据库表中的索引及索引列的CRUD

     -- 查询一个数据库表中的索引及索引列use [RuPengWangDB]GOSELECT  indexname = a.name , tablename = c. name , indexcolu ...

  7. YTU 3002: 出栈顺序(栈和队列)

    3002: 出栈顺序(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 80  解决: 20 题目描述 给出一个入栈序列,和一个出栈序列,判断该出栈序列是否正确. 输入 输入包含 ...

  8. MNIST手写数字数据库

    手写数字库很容易建立,但是总会很浪费时间.Google实验室的Corinna Cortes和纽约大学柯朗研究所的Yann LeCun建有一个手写数字数据库,训练库有60,000张手写数字图像,测试库有 ...

  9. hdu1024 Max Sum Plus Plus

    动态规划,给定长度为n(≤1e6)的整数数组和整数m,选取m个连续且两两无交集的子区间,求所有方案中使得区间和最大的最大值. dp[i][j]表示结束位置(最后一个区间最后一个元素的位置)为i且选取区 ...

  10. Squares 分类: POJ 2015-08-04 11:46 3人阅读 评论(0) 收藏

    Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 17462 Accepted: 6634 Description ...