objective-c 之歌 最简单最快速的objective-c教程
http://iammr.7.blog.163.com/blog/static/4910269920093914452407/
C没有类
这让人很疲惫
对象的说法很时髦
不就是继承封装组合人人会
右走是C++,这个大众都熟悉它
左走就是objective-c,躲在僻静僻静的麦金塔
本是同根生的C
如何高举面向对象的大旗
求同存异标新立异且听一一细分清
对象的C
是不同的C
类的处理与众不同重点要区分
不重复是我的口头禅
任何时候我只说一次告诉你我的地盘
[@begincommand] | @end就是我的指示
@interface classname 声明类
@implementation classname 实现类
@protocol interfacename 声明接口
就是这么简单,你的一定要明白
我先声明对成员变量和方法的关系有远近
成员变量大大括在我的怀
关系远近 public / protected / private 来区分
若不声明全默默受着保护
静态成员变量请不要放在此
成员方法我不太爱
前面拴着绳子置于类的变量列表外
减号就是普通函数
加号就是静态函数莫怪
函数的声明有点怪
我要一眼叫出名,包括函数名和参数名
其余的类型括起来,我有空再来慢慢看
函数名和参数名之间用:分隔开
多个参数的函数那就是更怪
逗号其实不是我的爱
后续的每个参数分隔用空白
每个参数形式如 标签:(参数类型)参数名
其实只要把函数名看作是第一个参数标签
你就能领悟其中的奥妙并在调用时喜爱
成员方法太多我才懒得区分亲疏远近
它们一律都是公之于众要好好的干活
谁若不服胆敢出头犯上
就踢出头文件打入冷宫永世不能露面试试看
所有的成员方法都是虚函数
改则重载,不改就继承
不用任何标记请放心大胆随便使用
对象的类,在继承层次上考虑才显得重要
所有的类最终都继承于NSObject
因为它给你创建自己生命的方法
不继承于NSObject的只能是接口protocol
它没有成员变量只有方法
它只有声明不用实现
这点和java很相似
当然类还有一些绝活可以让你开开眼
可以动态的扩充一个类 而不总是用继承
@interface CClassA(Category)|@end
@implementation CClassA (Category)|@end
源代码外包含该 类的头文件
就可以使用该Category中的方法
也可以动态的替换一个类
但是只限于用继承类来替换基类功能
[CInheritClass poseAsClass: [CBaseClass class]];
声明之后用基类创建的对象实际上行为都是继承类
所以一个类的完整声明如下:
@interface CClassA(Category): CBaseClass<IA,IB...>
类别,基类,接口一一具全
加上静态 虚函数
所有特性和C++均可对应
再加上所独有的特性
这一特性编译类语言很少有
设计得当完全可以实现动态调用dll切换功能
类的定义和使用,也有点怪
想想看一个对象的生命周期,该是如何办
创建很是别扭
这样就定义了一个类对象,
CClassName* pA = [[CClassName alloc] init];
能且只能返回对象指针
释放分为两种
自动释放声明后 [pA autorelease]; 以后可以不管
否则就必须配对 [pA release];
注意类的构造函数init可以捕获
但是析构函数却没有这点很让人意外
使用类也有多种情况
调用成员方法用中括号 int nRtn = [pA method:param1];
而静态成员方法不需要对象 int nRtn = [CClassName method];
调用成员变量还是C格式 pA->m_nCount = 1;
所有的类,都可以对应一个id类型
用来引用一个对象 id cur = sq;
或者用来引用一个对象指定的接口 id<IA> cur = sq;
然后就可以调用该对象的方法和指定接口方法
分享到:
相关推荐
### Objective-C语言教程知识点 #### 一、Objective-C简介 - **定义与特点**:Objective-C是一种计算机语言,它的设计初衷是为了支持面向对象编程。它不仅保持了C语言的简洁性,还通过引入面向对象的概念进一步提升...
- **熟悉C语言**: 由于Objective-C是C语言的扩展,具备C语言基础对于学习Objective-C非常有帮助。 - **实践为主**: 通过实际编写代码来学习Objective-C是最好的方法。尝试使用Objective-C和Cocoa框架开发简单的应用...
以下是一个简单的 Objective-C 程序示例,用于展示程序的基本结构。 ```objective-c #import int main(int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog...
Objective-C 是苹果公司开发的面向对象的编程语言,主要用于 macOS 和 iOS 平台的应用开发。在 Objective-C 中,遍历是处理数组、集合或者字典等数据结构时常见的操作。这里我们将详细介绍四种主要的遍历方法:for ...
Objective-C的内存管理机制是基于手动管理的,与.NET和Java的自动垃圾回收机制不同。在Objective-C中,对象在堆上创建,并需要一个指针来保持对其的引用。例如,`ClassA *obj1 = [[ClassA alloc] init];` 这句代码...
GPC的最简单方法是使用CocoaPods: 将Pod添加到podfile pod 'MKPolygon-GPC', '~> 0.0.1'刷新您的项目Pod pod install手动地如果您不使用cocoapods,只需在XCode项目中添加MKPolygon+GPC.h , MKPolygon+GPC.m , ...
Objective-C是一种面向对象的编程语言,它是苹果公司在开发iOS和macOS应用程序时的主要语言之一。Objective-C结合了C语言的基础语法与Smalltalk的面向对象特性,使得开发者能够更加高效地构建复杂的软件系统。本文将...
在C语言项目中,我们可以使用AMPL作为建模工具,通过AMPL的C库与C代码交互。 例如,你可以用AMPL这样描述一个简单的线性规划问题: ```ampl param c {1..n}; param A {1..m, 1..n}; param b {1..m}; var x {1..n}...
Objective-C是一种面向对象的编程语言,它建立在C语言的基础之上,并添加了许多现代面向对象的语言特性,如动态消息发送、运行时支持等。Objective-C中的类与对象定义如下: ```objective-c @interface ClassName :...
在编程领域,数组和排序是两个非常基础但至关重要的概念,尤其在Objective-C(简称OC)这样的面向对象语言中。数组是一种数据结构,用于存储一组相同类型的数据元素,而排序则是对这些元素按照特定规则进行排列的...
题目提到的`dealloc`方法是Objective-C中用于释放对象占用的内存的方法。在以下示例中: ```objective-c ClassA* obj1 = [[ClassA alloc] init]; ClassA* obj2 = obj1; [obj1 hello]; [obj1 dealloc]; [obj2 hello]...
最高级别是常规的Obj-C / Java / Kotlin代码,此处没有消息,最困难的部分是中间层。 iOS的中间层很简单; 您只需要配置项目就可以使用Obj-c的一个不同版本(称为进行构建,仅此而已,您就可以访问C ++代码。 在...
Vi编辑器和GCC编译器是Linux系统中不可或缺的工具,前者用于编写和编辑源代码,后者用于编译和构建C/C++以及Objective-C程序。 ### Vi编辑器的使用方法 Vi编辑器是Linux中最常用的文本编辑器之一,它分为三种模式...
- **未释放的对象**:忘记释放已经不再使用的对象是最常见的内存泄漏原因之一。 - **循环引用**:如上所述,两个或多个对象之间形成循环引用也会导致内存泄漏。 - **全局变量**:如果全局变量持有对象的强引用,而...
GCC支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada以及Go等。在Linux系统中,GCC是开发者的首选编译器,它不仅适用于个人电脑,还广泛应用于嵌入式系统和服务器。 ### GCC的基本工作流程 GCC的工作流程...
GCC(GNU Compiler Collection)是GNU项目的一个核心组件,它是一套开源的编译器集合,支持C、C++、Objective-C、Fortran、Ada、Go等多种编程语言。在Linux环境中,GCC是开发软件的重要工具,尤其对于CentOS这样的...
Objective-C中的for循环是最基本的形式之一,可以用来遍历数组或执行重复操作。 #### 1.10 实现while循环 与for循环类似,while循环也是重复执行代码的一种方式,但它的条件判断发生在每次循环开始之前。这种方式...
用于Obj-C和JavaScript之间通信的最简单的iOS桥梁 例子 要运行示例项目,请克隆存储库,然后首先从Example目录运行pod install 。 安装 XDMicroJSBridge可通过。 要安装它,只需将以下行添加到您的Podfile中: pod...
GCC 支持多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 等。 当使用 Makefile 结合 GCC 时,可以通过定义变量来控制编译器选项,比如优化级别 (`-O2`)、警告级别 (`-Wall`) 等。此外,还可以利用 GCC 提供...