zoukankan      html  css  js  c++  java
  • iOS学习笔记9

    总算成功开发完了第一个较大的功能(即时通信)。毕竟不可能什么东西都从轮子开始造,于是用到了一些组件,这里简单列举一下吧。

     

    1. FMDB

    作为一种文件型的数据存储方式,SQLite在iOS开发中自然也有用到。

    FMDB(https://github.com/ccgus/fmdb)是一个SQLite的Wrapper。它封装了SQLite的方法,简化成三个主要的类:

    FMDatabase:用来执行SQL,表示一个SQLite数据库

    FMResultSet:显示FMDatabase查询的结果

    FMDatabaseQueue:多线程情况下使用。

    具体的API就不多介绍了。不过需要提到的是:iOS官方提供的存储数据的方法是Core Data。不过那又是另外一个topic了。

     

    2. Emoticon

    从iOS5开始,增加了一个Emoji (絵文字)的键盘(默认隐藏)。

    当然实际上这只是对于类似@"ue415"的字符串的系统内置自动转换。如果要实现这个的话,不需要写什么额外的代码。

     

    但是如果你要像我一样做一个自定义的Emoticon(发送表情)的话,就有的苦好吃了。。。

    https://code.google.com/p/emotionlabel/ 有一个基于DTCoreText的类EmotionLabel。不过我最终没有用这个类,是因为在引入DTCoreText的时候,其中的Color相关的类和我应用中的类冲突了。。。另外还有一些很奇怪的bug,比如发送完消息后会出现一个Bad Access的运行时错误,我最终也没debug出来到底是由于什么原因造成的。。。可能是因为我没用ARC吧。

    我最终实现的方法非常土鳖:将一个UILabel中的每一个字符拆成一个UILabel,并找出特定的字符串(例如[:10],将其替换为UIImage。存在一个很严重的bug:没法处理一个单词中的换行问题。当然也可以靠加“-”或检测空格来回避,但存在deadline这个东西。。。

     

    3. 自定义键盘

    这个没用到什么组件,全手工从头开始打造。

    可以参考以下两篇文章:

    http://gregheo.com/blog/ios-custom-keyboard/

    http://thekspace.com/home/component/content/article/63-ioscustomkb.html

     

    4. SBJsonParser

    这个是用来解析Json数据的库。

    虽然这名字有点那个。。。

     

    5. WEPopover

    https://www.cocoacontrols.com/controls/wepopover

    这是一个弹出矩形弹出框的控件。似乎Evernote也有用到。

     

    6. GANTracker

    如果担心在手机上没法用Google Analytics的话,可以调用这个库。

    全名应该是Google Analytics SDK for iOS v1 (Legacy)

    https://developers.google.com/analytics/devguides/collection/ios/devguide?hl=ja

     

  • 相关阅读:
    jsonp原理
    Mysql FUNCTION 示例
    数据库设计心得
    《杀死一只知更鸟》读后感
    《必然》读后感
    承接各种字牌算法
    关于麻将的算法构想
    十三水最优组合问题快速运算求解方案
    如何表示扑克牌?
    如何比较牌大小?
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/3154981.html
Copyright © 2011-2022 走看看