OC 基本语法

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、堆和栈的区别

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

原文地址:https://www.cnblogs.com/CH520/p/9513892.html

时间: 2024-11-10 20:06:30

OC 基本语法的相关文章

iOS开发——面试篇&OC基本语法总结(面试)

OC基本语法总结(面试) C和OC对比 OC中主要开发在什么平台上的应用程序? 答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头? 答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型? 答: Block类型 指针类型(Class, id类型) 空类型 特殊类型(SEL, nil) 面向对象特性是什么? 答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的

OC点语法和变量作用域

OC点语法和变量作用域 一.点语法 (一)认识点语法 声明一个Person类: 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 { 5 int _age;//默认为@protected 6 } 7 8 - (void)setAge:(int)age; 9 - (int)age; 10 11 @end Person类的实现: 1 #import "Person.h" 2 3 @imp

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

A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误 B.类方法 1.是类名调用的方法 2.使用加号修饰的方法 3.类方法和对象方法可以重名 4.对象方法和类方法都允许多次声明,都不允许多次定义 5.类方法不能访问实例变量 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 - (void) t

【黑马程序员】————OC特有语法

一.点语法 点语法的本质还是方法调用 p.age = 10; // [p setAge:10]; int a = p.age; // [p age]; 二.成员变量的作用域 @public : 在任何地方都能直接访问对象的成员变量 @private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private) @protected : 可以在当前类及其子类的对象方法中直接访问 (@interface中默认就是@protected) @package : 只要处在

OC中语法糖,最新语法总结

<span style="font-size:24px;"> 1.方法与顺序无关 2.枚举绑定数据类型 enum { ObjectiveC, Java, Ruby, Python, Erlang }; typedef NSUInteger Language; 3. 属性不用写@synthesize 4.语法简化 4.1 NSNumber NSNumber *value; value = @12345; value = @123.45f; value = @123.45; v

黑马程序员-OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方

黑马程序员—OC点语法和成员变量作用域

一.点语法 1.OC中点语法是方便从事别的语言开发的程序员迅速的转到OC开发当中,先看下面这个例子: 1 // 声明一个Person类 2 @interface Person : NSObject 3 { 4 int _age; 5 NSString *_name; 6 } 7 - (void)setAge:(int)age; 8 - (int)age; 9 @end 10 11 // 实现Person类 12 @implementation Person 13 - (void)setAge:(

【OC基础语法考试】

OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请OC老鸟来喷~~ 试题如下: 1.将包含以下三个字符串@“1hello“,@“2word“,@”3good“的数组改写为字典,数字部分作为key,英文部分作为value.(15) 2.建立一个数组对象,使用3个不同的方法,使其引用计数增加为4,输出这个值,然后保证内存能够正确释放.(15) 3.使用

oc基础语法(一)

//oc的第一个程序1 #impor <Foundation/Foundation.h> 2 int main() 3 { 5 NSLog("@hello,Object - C"); // oc使用了NSLog打印 return 0; 6 } oc语言是一门基于c的语言,在c语言的基础之上添加了一门面向对象的语法,将繁琐的c语言变得更简单.oc语言全面兼容c语言,它在基本数据类型上又添加了六种数据类型,分别是BOOL.Boolean.nil.SEL.class.block.

第一部分 1.10 OC基础语法-点语法、构造方法、结构体

一.点语法 新建一个person类 #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; } - (void)setAge:(int)age; // 方法名是setAge: - (int)age; // 方法名是age // 方法名是setAge:andNo: // - (void)setAge:(int)newAge andNo:(int)no; @end #import "Person