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:param1v
对于我们第一次自定义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:param1v