用objective c开发的第一个mac程序(2)——初识oc cocoa swift

本文记录了作者使用Objective-C开发Mac应用程序的过程,包括前期准备、调用C++库、多线程、画线、组合功能、清除线条、事件处理、清屏问题、第三方库的bug调试以及打包步骤。作者在开发过程中遇到诸多挑战,通过不断尝试和学习,最终成功完成项目。
摘要由CSDN通过智能技术生成

第一阶段其实很蛋疼,牛人可能1个小时,半个小时,甚至10来分钟就能搞定了,而我却用了几天!这几天对我来说是挺打击的,自信心沉了一半……

接着第一阶段的记录,继续……

思路如下:

1. 编译boost库(mac版本)
2. 编译tinyxml库
3. 编译xxx-touch库
4. 在swift中调用xxx-touch库
5. 获取xxx-touch库中接收到的数据
6. 根据数据在界面上画出来

按照思路应该走到第四步了,前三步都是准备工作,后面的3步才是最关键的,仔细想想,把后3步点思路细分(当时的方案):

1. xcode怎么使用swift开发app呢?
2. 在swift中调用c++的库,来获取设备返回的信息(这个使用一条单独的线程);
3. 在swift中怎么使用线程(cocoa有个NSThread);
4. 怎么画线,需要使用什么api完成画图的功能?;
5. 将设备中的数据画出来(这个计划使用另外一条单独的线程)
6. swift怎么在2条线程中进行数据同步?怎么使用锁?

一、前期准备
http://www.cocoachina.com/industry/20131211/7517.html
https://developer.apple.com/library/mac/referencelibrary/GettingStarted/RoadMapOSX/books/RM_YourFirstApp_Mac/Articles/Introduction.html

看了之后对mac下开发app有初步多认识,《Programming With Cocoa》第14、15、16章主要讲cocoa的图形介绍,前两章讲图形的基础,16章讲交互(可惜一致都找不到第16章),当然其他的也应该看;
[当初为什么只看14 15章,因为对cocoa框架对了解基本是0,于是后面碰到了很多关于NSView的问题]

在swift与objective c之间的选择

mac上开发之前,对oc和swift做了对比,swift传说很强大,也是苹果新推出的语言,相必很有前途,于是就兴致勃勃到奔去学swift了。

看了swift都语法感觉很熟悉,像脚步语言,也像java,也像ruby,不过个人觉得最像的却是c#,语法、委托、扩展函数等(当时很有印象的,久了却忘了-_-!!)。瞬间觉得很有亲切感,想起了以前做过的一个系统(在上一个公司做过一个管理系统,用c#开发的,不过做得很失败)。

语法看了一遍,熟悉得差不多了,当然很多都没有记住,只是大概的知道而已;然后就开始干活了,怎么去调用之前编译好的库呢?查资料有点蛋疼啊...

swift使用c很方便,却不支持c++。
要使用c++就得先建个objective c的文件(CPPTouch.m),修改命名为CPPTouch.mm,(到了这一步只是oc与c++混编),swift还得访问需要通过oc才能访问调用c++到库

本人觉得oc语法比较诡异,而swift语法又那么亲切,所以起初就选择到是swift。但是发现cocoa的库也是oc写的,oc的实例也比较齐全,而swift却比较少,而且调用c++那么失败,个人也比较喜欢cocos2d-x游戏的开发的,而cocos2d-x和c++,还得用oc,那干脆直接用oc好了。so,就这样不用swift了,改用oc,虽然语法是诡异,看多两下就好了;

[个人的理解仍然比较肤浅,真想有大牛能指点迷津!]

二、调用c++的库

objective c 中调用c++只需将oc对.m后缀名改成.mm后缀即可调用c++的库。
.m包含oc和c的特性,而.mm则包涵了则包含oc、c和c++的特性,3者兼容;

混编,代码如下:

- (void)cpp_print {
    std::cout << "This 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值