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

  • 堆需要用户手动释放内存,而栈则是编译器自动释放内存
时间: 2024-08-01 08:29:09

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

iOS - OC 面向对象语法

1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(category):允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之后的一对圆括号"( )"中. @interface QCStudent (Print) @end @implementation QCStud

ios oc对象不可以直接写到plist中..

问题描述 ios oc对象不可以直接写到plist中.. ios oc对象不可以直接写到plist中..ios oc对象不可以直接写到plist中..ios oc对象不可以直接写到plist中.. 解决方案 你可以写到 NSUserDefault 中, 也就是常说的 User setting, 可以把它当 NSDictionary 来用. 解决方案二: 必须是nsstring,array,dictionary,set等的子类 解决方案三: plist里面一般都是字典数组字符串之类的,你要存对象得

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

iOS - OC 语言新特性

前言 相对于 Java,OC 语言是一门古老的语言了,而它又是一门不断发展完善的语言.一些新的编译特性,为 OC 语言带来了许多新的活力.在 Xcode7 中,iOS9 的 SDK 已经全面兼容了 Objective-C 的一些新特 性和新功能.这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的 iOS 系统,如果可以将这些新特性都应用于开发,开发效率和代码质量,相比之前会有一个很大的提升. 1.可选类型检测 在 swift 语言中,通过 ! 和

iOS - Swift 面向对象语法

1.面向对象 面向过程:面向过程编成将所要解决的问题按解决问题的步骤进行分析.如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块.每一个解决的步骤可能是一行或者几行代码,也可能是一个函数.这样把每一个步骤都实现或者解决掉,最后把所有的解决手段按顺序进行调用,如果遇到一些意外情况就分情况处理,如果遇到重复的操作就循环处理,如此就完成了整个程序. 面向对象:以面向对象的方式去解决问题的思路,我们关注的往往不是解决问题的步骤.更多的是将问题所涉及的方面进行一些角色层次上的划分.在每

iOS - OC RunTime 运行时

1.运行时 运行时是苹果提供的纯 C 语言的开发库,是一种非常牛逼.开发中经常用到的底层技术. 1.1 运行时原理 Objective-C 是一门简单的语言,95% 是 C,只是在语言层面上加了些关键字和语法,真正让 Objective-C 如此强大的是它的运行时.它很小但却很强大,它的核心是消息分发. 1.Messages 执行一个方法,有些语言,编译器会执行一些额外的优化和错误检查,因为调用关系很直接也很明显.但对于消息分发来说,就不那么明显了.在发消息前不必知道某个对象是否能够处理消息.你

iOS - Swift 基本语法

前言 Swift 全面支持 Unicode 符号. Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 ".Swift" 结尾的. Swift 不需要单独编写一个 main 函数作为入口,在 Swift 语言中函数是一等成员,编译器会自动将遇到的第一个函数作为入口. Swift 允许我们不用在行尾加分号 ";".但如果在同一行有两个甚至多个表达式,需要在每个表达式后面加上分号. Playground 是一种编写代码时可以即时预览代码

iOS - OC 内存管理

1.OC 基本内存管理模型 1.1 自动垃圾收集 在 OC 2.0 中,有一种称为垃圾收集的内存管理形式.通过垃圾收集,系统能够自动监测对象是否拥有其他的对象,当程序执行需要空间的时候,不再被引用的对象会自动释放.iOS 运行环境并不支持垃圾收集,在这个平台开发程序时并没有这方面的选项.在 OS X 10.8 中垃圾收集已不再推荐使用. 1.2 自动释放池 自动释放池(autoreleasepool)的机制是它使得应用在创建新对象时,系统能够有效的管理应用所使用的内存.自动释放池可以追踪需要延时

iOS - OC iOS 开发体系

1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation 等 Core Services Core Data.Foundation 等 Core OS Accelerate Framework.External Accessory Framework.Security Framework.System 等 从图中可以看到,要想编写成型的产品,需要的不仅仅是