Qt/C++开发者眼中的Obj-C
对于我们第一次自定义iOS应用来说,对于来自Qt/C++开发者来说,我不得不学习Objective-C相关语法与知识
为了让读者能够更容易理解这篇博客的内容,我将描述诸多我所学到的东西.这将更多的是大脑转存而不是单一的教程
,所以我仍然希望这将对你很有帮助,我将首先写编程语言的差异,然后再写关于类库的差异
1.Objective C vs C vs C++
类似于C++,Obj-c是C语言的一个超集(这不是100%正确的,但是一个足够好的语句来理解它),您将使用的文件扩展名的头.h和.m来表示Obj-C语法
注意还有obj- c++文件扩展名.mm,虽然我现在还不会写.
类似于塞班c++,Obj-C是使用两个阶段进行构造:首先你在堆上分配对象,然后调用init方法.
通常可以避免调用两个方法和只使用一个静态简便的方法,直接给你一个新分配的对象(例如stringWithCString).
完全不同(起初非常分散)是Obj-C函数的调用方法,类似通常的C-ish方式,例如NSLog(@“我的日志消息”);但也有Obj-C语法对象的调用方法。
作为一个例子,这是对象有一个方法包含两个参数:obj(obj methodName:param1value param2:param2Value]。看起来很奇怪甚至别扭,但你要去适应它。
在Objective C,这是通常被称为发送消息,不仅仅是它的调用方法,还有好多我发现更加混乱.
在上面这个方法示例,methodName是所谓的选择器。一个选择器是一个方法的标识符。有时你必须识别方法(类似于一个函数指针),
在上面的例子中你可以这
对于我们第一次自定义iOS应用来说,对于来自Qt/C++开发者来说,我不得不学习Objective-C相关语法与知识
为了让读者能够更容易理解这篇博客的内容,我将描述诸多我所学到的东西.这将更多的是大脑转存而不是单一的教程
,所以我仍然希望这将对你很有帮助,我将首先写编程语言的差异,然后再写关于类库的差异
1.Objective C vs C vs C++
类似于C++,Obj-c是C语言的一个超集(这不是100%正确的,但是一个足够好的语句来理解它),您将使用的文件扩展名的头.h和.m来表示Obj-C语法
注意还有obj- c++文件扩展名.mm,虽然我现在还不会写.
类似于塞班c++,Obj-C是使用两个阶段进行构造:首先你在堆上分配对象,然后调用init方法.
通常可以避免调用两个方法和只使用一个静态简便的方法,直接给你一个新分配的对象(例如stringWithCString).
完全不同(起初非常分散)是Obj-C函数的调用方法,类似通常的C-ish方式,例如NSLog(@“我的日志消息”);但也有Obj-C语法对象的调用方法。
作为一个例子,这是对象有一个方法包含两个参数:obj(obj methodName:param1value param2:param2Value]。看起来很奇怪甚至别扭,但你要去适应它。
在Objective C,这是通常被称为发送消息,不仅仅是它的调用方法,还有好多我发现更加混乱.
在上面这个方法示例,methodName是所谓的选择器。一个选择器是一个方法的标识符。有时你必须识别方法(类似于一个函数指针),
在上面的例子中你可以这