BMCommons 0.3.3

BMCommons 0.3.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年9月

Werner Altewischer 维护。



BMCommons 0.3.3

  • 作者
  • Werner Altewischer

BMCommons 框架是由 Werner Altewischer 为 Behind Media 开发的,用于开发 iOS 应用的框架。它是一个通用框架,由多个子模块组成。

模块

BMCore

这是一个包含核心功能、可用于 MacOSX 和 iOS 应用程序的模块。它包含

  • 大量辅助类,如 BMApplicationHelper、BMErrorHelper、BMSecurityHelper、BMEncodingHelper、BMEncryptionHelper、BMErrorHelper、BMStringHelper、BMDateHelper 等;
  • 对 Foundation 类的扩展,如 BMTwoWayDictionary 和 BMOrderedDictionary;
  • 对 Foundation 类的分类,如 NSString(BMCommons)、NSDateFormatter(BMCommons)、NSNumber(BMCommons)、NSData(Encryption)、NSData(Compression)、NSArray(BMCommons) 等;
  • 带有 BMHTTPRequest、BMURLCache 和 BMAsyncDataLoader 等类别的流式网络库;
  • 通过 BMProxy 和 BMImmutableProxy 支持代理;
  • BMService 框架的核心类,如 BMServiceManager、BMAbstractService、BMHTTPService 和 BMCompositeService;
  • 基本输入流类,如 BMAbstractInputStream、BMBufferedInputStream、BMURLConnectionInputStream 和 BMHTTPMultiPartBodyInputStream;
  • 通过 BMCache 和 BMURLCache 缓存;
  • 通过 BMOperationQueue 扩展 NSOperationQueue 进行多线程;
  • 通过 BMLocalization 扩展了基本本地化支持,允许在应用程序中更改区域设置;
  • BMApplicationContext 类作为单例对象的注册表和应用程序的初始化点。
  • BMSettingsRegistry、BMSettingsObject 和 BMAbstractSettingsObject 用于管理应用程序设置。

BMUICore

这是一个依赖于 BMCore 的 iOS 应用程序核心功能模块,它包含

  • 如 BMViewController、BMTableViewController 和 BMNavigationController 等基本 UIViewController 类,提供拖动刷新、拖动加载更多和自定义推送动画等功能;
  • 如 BMServiceModelTableViewController 和 BMEntityServiceModelTableViewController 等使用 BMService 框架异步加载模型的 UIViewController 类;
  • 如 BMImageHelper、BMDialogHelper 和 BMDeviceHelper 等辅助类;
  • 如 BMTableViewCell 和 BMObjectPropertyTableViewCell 等基本 UITableViewCell 类;
  • 通过 BMAsyncImageLoader 支持异步图像加载;
  • 如 BMTextField、BMAnimatedImageView、BMAsyncLoadingImageButton、BMDraggableButton 和 BMBarButtonItem 等基本 UIView/UIControl 类;
  • 通过 BMStyleSheet 支持视图控制器样式表;
  • 通过 BMBusyView 支持加载指示器;
  • 对 UIWebView(BMCommons)、UIView(BMCommons)、UINavigationBar(BMCommons) 等常见类别的分类支持;
  • 实现常见应用程序代理方法并添加通过 BMServiceManager 绑定到 BMService 调用的加载指示器支持的 BMAppDelegate 基类。

BMUIExtensions

包含自定义UIView、UIViewControllers和相关类的模块

  • BMPagedView:用于分页视图(如iOS主屏幕功能),API与UITableView类似。
  • BMWebDialog:用于HTML基于的对话框/警报
  • BMValidatingTextField:具有验证支持的UITextField
  • 各种BMTableViewCell类,例如:BMDatePickerCell、BMImageViewCell、BMSliderCell、BMTextViewCell、BMTextFieldCell、BMSwitchCell、BMTimePickerCeell、BMValuePickerCell。
  • BMAlphabeticListTableViewController:类似于联系应用的表格视图(带搜索栏和字母索引)。
  • BMMultiSwitchViewController:一个容器视图控制器,用于在不同视图控制器之间切换,带自定义动画。
  • BMInfoWebViewController:用于显示基于Web的信息。
  • 值选择视图控制器,例如:BMMultiSelectionViewController、BMDateSelectionViewController、BMEnumeratedValueSelectionViewController、BMTimeSelectionViewController。
  • BMMailComposeController:用于实例化电子邮件订阅视图控制器。

以下是所有类的完整列表,以及它们用途的简要描述。

此模块依赖于BMUICore。

BMXML

包含用于与XML文档交互的类(如:BMXMLDocument、BMXMLElement、BMXMLNode、BMXMLReader、BMXMLReaderSAX和BMXPathQuery)的模块

BMRestKit

包含用于以流式方式解析XML或JSON数据的完整框架,以及将数据映射到对象的框架。它还支持使用XSD或WSDL作为源自动生成REST/SOAP Web服务的客户端类,并对所使用的传输透明(无论是XML还是JSON)。模块包含以下功能

  • BMParser:包含BMJSONParser和BMXMLParser的实现,用于流式SAX样式解析JSON或XML数据。
  • BMParserHandler:用于SAX样式解析数据的基础类。
  • BMObjectMappingParserHandler:将数据映射到BMMappableObject实现类的类。
  • BMObjectMappingParserService:用于解析XML/JSON数据(多线程)并将其映射到BMMappableObject实例的BMService实现。
  • BMMappableObjectGenerator:从XSD或WSDL生成预配置的BMMappable对象实例的生成器。
  • BMMappableObjectXMLSerializer和BMMappableObjectJSONSerializer:将对象在XML或JSON之间转换。

以下是所有类的完整列表,以及它们用途的简要描述。

此模块依赖于BMCore和BMXML。此外,它还依赖

  • YAJL

BMCoreData

包含用于使用CoreData作为持久存储的辅助类模块

  • BMCoreDataStack:NSManagedObjectContext和NSManagedObjectModel的中心注册表,它了解多线程代码。它还支持自动版本迁移。
  • BMCoreDataOperation:用于在后台执行CoreData操作的NSOperation。
  • BMCoreDataModelDescriptor、BMCoreDataStoreDescriptor和BMCoreDataStoreCollectionDescriptor:用于管理和迁移复杂的CoreData模型/存储文件层次结构的描述符。
  • BMCoreDataErrorHelper:许多常见操作的帮助方法,如获取请求、遍历对象图等。
  • BMFetchedResultsTableViewController:表示核心数据实体为单元格的表格视图控制器的基类。

以下是所有类的完整列表,以及它们用途的简要描述。

此模块依赖于BMCore和BMUICore。

API版本

请注意,并非所有API都可以被认为是最终的,可能会发生变化。这就是为什么BMCommons框架仍然处于0.x版本区域。这并不是说软件是不稳定的,并已被作者应用于已上架的许多生产应用。

就API和文档而言,最成熟的子模块是BMCore、BMXML和BMRestKit。

示例

要运行示例项目,首先克隆仓库,然后从示例目录中运行pod install

需求

安装

BMCommons可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中

pod "BMCommons/<sub module>"

其中子模块是以下之一

  • BMCore
  • BMUICore
  • BMXML
  • BMRestKit
  • BMCoreData
  • BMUIExtensions

作者

Werner Altewischer

许可

BMCommons受MIT许可协议保护。有关更多信息,请参阅LICENSE文件。