• iOS 第三方库(1)


     

    MKNETWORK

    被广泛使用的第三方网络访问开源库。用于提供更加友好的网络访问接口。相信很多搞iOS开发的朋友都用过它

    RegexKit

    RegexKit是一个正则表达式工具类。提供强大的正则表达式匹配和替换功能。我们主要使用它来对类似微博的正文替换工作。例如将 @某某 换成带链接的,将图片的URL换成img标签等。

    同时,开源库MGTemplateEngine也依赖于此库。附上RegexKit4.0的官方文档教程

    MGTemplateEngine

    MGTemplateEngine是一个模版引擎。我们主要使用它来生成单条微博页的内容。我们的单条微博页打算用UIWebView来显示,所以内容需要用模版渲染成HTML格式。MGTemplateEngine的模版语言比较象:Smarty, FreeMarker 和 Django的模版语言。

    MGTemplateEngine的作者官方博客在这里

    我们在使用时,对此开源库的Filter类进行了修改,主要增加了3个自定义的filter,用于提供我们的格式化时间,转义html和过滤空头象的用户的方式。

    JSONKit

    JSONKit是一个比较高效的JSON解析库。我之前比较过各大JSON解析库的性能(文章在此),JSONKit算是非常不错的,大概的使用示例如下:

    1
    2
    3
    4
    5
    6
    
    #import "JSONKit.h"
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
    NSData *content = [NSData dataWithContentsOfFile:path];
    NSDictionary *kitData = [content objectFromJSONData];
    NSString *kitString = [kitData JSONString];
    

    GTMNSString

    GTMNSString主要用于转义HTML中的特殊字符。以防止XSS攻击。

    FMDB

    FMDB是一个sqlite数据库封装类,需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。在使用上非常简单。如下是一个例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString * dbpath = [docsdir stringByAppendingPathComponent:@"user.sqlite"];
    FMDatabase * db = [FMDatabase databaseWithPath:dbpath];
    [db open];
    FMResultSet * rs = [db executeQuery:@"select * from People"];
    while ([rs next]) {
        NSLog(@"%@ %@",
        [rs stringForColumn:@"firstname"],
        [rs stringForColumn:@"lastname"]);
    }
    [db close];
    

    BBCustomBackButtonViewController

    BBCustomBackButtonViewController 是用于在ios4上提供自定义的NavigationBar按钮的开源库。使用上异常简单,只需要让自己的ViewController继承它就可以了。

    我对BBCustomBackButtonViewController进行了修改,主要是改动它的自定义的按钮的样式,使其和我们的风格一致。

    MTStatusBarOverlay

    MTStatusBarOverlay 是一个在iphone的顶部status bar显示消息的开源库。示例代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    
    + (void)showCompletedTextOnStatusBar:(NSString *)text {
        NSString * message = [NSString stringWithFormat:@"%@成功", text];
        MTStatusBarOverlay *overlay = [MTStatusBarOverlay sharedInstance];
        overlay.animation = MTStatusBarOverlayAnimationFallDown;
        overlay.detailViewMode = MTDetailViewModeHistory;
        [overlay postImmediateFinishMessage:message duration:2.0 animated:YES];
        overlay.progress = 1.0;
    }
    

    但是stackoverflow上说,有项目因为这个审核被拒,但是新浪微博明显采用了此UI方案,所以我们还是大胆用了这个库。后来,我们也顺利通过了审核。

    MBProgressHUD

    MBProgressHUD 是一个用于显示灰色的加载进度或结果的类。与系统自带的UIAlertView相比,MBProgressHUD由于背影是黑色的,所以视觉上不是那么强烈。我们主要用它来显示一些加载中的提示,以及一些自已会消失的操作结果(例如网络失败等)。

    NSStringWrapper

    因为自己有多年Java开发的经历,我还是不太习惯Objective-C连基本的字符串操作都要查文档,而我自己又记不住老长的方法名,所以我把 Objective-C的字符串基本操作都封装成了Java风格的方法调用。这部分是很早前拿周末时间在家里写的,所以是开源的,源代码地址

    EGOTableViewPullRefresh

    EGOTableViewPullRefresh 一个开源的下拉刷新组件。我对它进行了改进,增加了强制刷新功能。

    LoadMoreTableFooterView

    LoadMoreTableFooterView 一个开源的上拉加载更多的组件。我做了少量修改,以便让它支持iPhone5的分辨率。

    zepto.js

    zepto是一个类似JQuery的javascript开源库,用于实现css选择器和一些dom操作。它的api几乎和JQuery完全一样,优点是体积小巧。

    ejs

    ejs一个js端的模版库。我们主要用于渲染一些UIWebview中异步加载的内容。例如笔记的评论,问题的答案。

     

  • 相关阅读:
    Linux五种IO模型性能分析
    并发容器之CopyOnWriteArrayList(转载)
    Web.XML配置详解
    Servlet,过滤器,监听器,拦截器的区别
    JAVA反射机制详解
    Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
    Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
    Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
    Jdk1.6 JUC源码解析(7)-locks-ReentrantLock
    hibernate 其中七种关联关系
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4643325.html
Copyright © 2020-2023  润新知