第一阶段其实很蛋疼,牛人可能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