主要内容:1. 数据封装示例,2. 设计策略所有Objective-C程序都由以下两个基本要素组成 - 程序语句(代码) - 这是执行操作的程序的一部分,它们被称为方法(函数)。 程序数据 - 数据是受程序功能影响的程序信息。 封装是一种面向对象的编程概念,它将操作数据的数据和功能绑定在一起,并保护其免受外部干扰和误用。 数据封装导致了重要的OOP数据隐藏概念。 数据封装是捆绑数据和使用函数的机制,数据抽象是一种仅暴露接口并从用户隐藏实现细
主要内容:1. Objective-C特征,2. Objective-C类定义,3. 分配和初始化Objective-C对象,4. 访问数据成员,5. 属性Objective-C编程语言的主要目的是为C编程语言添加面向对象,类是Objective-C的核心特性,支持面向对象编程,通常称为用户定义类型。 类用于指定对象的形式,它将数据表示和方法组合在一起,以便将数据操作到一个整齐的包中。 类中的数据和方法称为类的成员。 1. Objective-C特征 类定义在两个不同的部分,即和。 几乎所有东西
主要内容:NSError在Objective-C编程中,错误处理由框架中提供的类提供处理。 与仅使用错误代码或错误字符串相比,对象封装了更丰富且更具可扩展性的错误信息。 对象的核心属性是错误域(由字符串表示),特定于域的错误代码和包含应用程序特定信息的用户信息字典。 NSError Objective-C程序使用对象来传达有关用户需要了解的运行时错误的信息。 在大多数情况下,程序会在对话框或工作表中显示此错误信息。 但它
为了打印日志,可使用Objective-C编程语言中的方法,首先在示例中使用了这个方法。 下面来看一下打印“Hello World”字样的简单代码 - 现在,当编译并运行程序时,将得到以下结果 - 在实时应用程序中禁用日志 由于在应用程序中经常使用,它将日志信息打印在设备的日志中,并且在实时构建中打印日志是不好的。 因此,使用类型定义来打印日志,如下所示。 执行上面示例代码,得到以下结果: 现在,
主要内容:整型提升,通用的算术转换类型转换是一种将变量从一种数据类型转换为另一种数据类型的方法。 例如,如果要将值存储到简单整数()中,则可以将类型转换设置为。使用强制转换运算符将值从一种类型转换为另一种类型,如下所示 - 在Objective-C中,通常使用进行浮点运算,它是在位情况下从基本类型的派生的,在位情况下是类型。参考以下示例,使用转换运算符将一个整数变量除以另一个整数变量,结果为浮点数 - 执行上面示例代码,得到以下结
主要内容:1. 预处理器示例,2. 预定义的宏,3. 预处理器运算符,4. 参数化宏Objective-C预处理器不是编译器的一部分,而是编译过程中的一个单独步骤。 简单来说,Objective-C预处理器只是一个文本替换工具,它指示编译器在实际编译之前进行必要的预处理。 我们将Objective-C预处理器称为OCPP。 所有预处理器命令都以井号()开头。它必须是第一个字符(前面不能有空格),并且为了便于阅读,预处理器指令应该从第一列开始。 以下部分列出了所有重要的预处理程序指
主要内容:1. 整数类型,2. 浮点类型,3. void类型在Objective-C编程语言中,数据类型是指用于声明不同类型的变量或函数的扩展系统。 变量的类型决定了它在存储中占用的空间大小以及如何解释存储的位模式。 Objective-C中的类型可分为以下几类 - 编号 类型 描述 1 基本类型 它们是算术类型,由两种类型组成:(a)整数类型和(b)浮点类型。 2 枚举类型 它们又是算术类型,用于定义只能在整个程序中分配某些离散整数值的变量。 3 voi
主要内容:Objective-C令牌,分号;,注释,标识符,关键字,Objective-C空白格前面已经看到了Objective-C程序的基本结构,因此很容易理解Objective-C编程语言的其他基本构建块。 Objective-C令牌 Objective-C程序由各种令牌组成,令牌可以是关键字,标识符,常量,字符串文字或符号。 例如,以下Objective-C语句由六个令牌组成 - 单个标记是 - 分号; 在Objective-C程序中,分号是语句终止符。也就是说,每个单独的语句必须以分
主要内容:1. Objective-C Hello World示例在学习Objective-C编程语言的基本构建块之前,先来看一下最基本的Objective-C程序结构,以便在接下来的章节中,将它作为参考理解程序。 1. Objective-C Hello World示例 Objective-C程序基本上由以下部分组成 - 预处理程序命令 接口 实现 方法 变量 声明和表达 注释 下面来看一下打印“Hello World”字样的简单代码 - 下面对上述程序的各个
主要内容:正则表达式的组成,Regex 类正则表达式是一种匹配输入文本的模式,可以用于解析和验证给定文本以及模式之间是否匹配,模式可以包含运算符、字符字面值或结构。 正则表达式的组成 我们可以使用正则表达式检查给定字符串是否与指定模式相匹配。正则表达式的匹配模式由一系列字符组成,其中可以包括数子、文字、运算符、字符等等。我们可以使用这些模式来搜索字符串或文件,并查看是否找到了匹配的项。 开发中我们一般使用正则表达式来验证用户输入的信息是否
主要内容:运算符重载的实现,可重载与不可重载的运算符C# 中支持运算符重载,所谓运算符重载就是我们可以使用自定义类型来重新定义 C# 中大多数运算符的功能。运算符重载需要通过 operator 关键字后跟运算符的形式来定义的,我们可以将被重新定义的运算符看作是具有特殊名称的函数,与其他函数一样,该函数也有返回值类型和参数列表,如下例所示: public static Box operator+ (Box b, Box c) { Box bo
主要内容:使用 open 函数打开文件,使用流类的构造函数打开文件在对文件进行读写操作之前,先要打开文件。打开文件有以下两个目的: 通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行。 指明文件的使用方式。使用方式有只读、只写、既读又写、在文件末尾添加数据、以文本方式使用、以二进制方式使用等多种。 打开文件可以通过以下两种方式进行: 调用流对象的 open 成员函数打开文件。 定义文件流对象时,通过构造函数打开
主要内容:C++ tellp()成员方法,C++ seekp()成员方法通过前面章节的学习我们知道,无论是使用 cout 输出普通数据,用 cout.put() 输出指定字符,还是用 cout.write() 输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置(屏幕或者文件中)。 值得一提的是,当数据暂存于输出流缓冲区中时,我们仍可以对其进行修改。ostream 类中提供有 tellp() 和 seekp() 成员方法,借助它们就可以修改
《 C++ cout.put()》一节中,讲解了 ostream 类提供的 put() 成员方法的用法,其用于向输出流缓冲区中添加要输出的单个字符。而在某些场景中,我们还需要输出指定的字符串,这时可以使用 ostream 类提供的 write() 成员方法。 write() 成员方法专用于向输出流缓冲区中添加指定的字符串,初学者可以简单的理解为输出指定的字符串。其语法格式如下: ostream&w
主要内容:一个动态数组的例子,throw 用作异常规范,请抛弃异常规范,不要再使用它在《 C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为: 抛出(Throw)--> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。 在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: throw exceptionData; exceptionData 是“异常数据”的意思,它