RxContacts
RxContacts是RxSwift对Contacts Framework的包装。
系统需求
- iOS 9.0+ / Mac OS X 10.12+ / watchOS 3.0+
- Xcode 9.0+
安装
CocoaPods
CocoaPods是Cocoa项目的依赖管理器。您可以使用以下命令来安装它
$ gem install cocoapods
要使用CocoaPods将RxContacts集成到Xcode项目中,请在您的Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'RxContacts'
然后,运行以下命令
$ pod install
Carthage
Carthage是一个去中心化的依赖管理器,它自动化了将框架添加到您的Cocoa应用程序的过程。
您可以使用以下命令搭配Homebrew来安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将RxContacts集成到您的Xcode项目中,请在您的Cartfile
中指定它。
github "SwiftyContacts/RxContacts" ~> 0.1
Swift包管理器
要将RxContacts作为Swift包管理器包使用,请只需在您的Package.swift
文件中添加以下内容。
import PackageDescription
let package = Package(
name: "HelloContacts",
dependencies: [
.Package(url: "https://github.com/satishbabariya/RxContacts", "0.1")
]
)
手动操作
如果您不想使用上面提到的任何依赖管理器,您可以手动将RxContacts集成到您的项目中。
嵌入二进制文件
- 从https://github.com/satishbabariya/RxContacts/releases下载最新版本。
- 接下来,在项目导航器(蓝色项目图标)中选择您的应用程序项目,导航到目标配置窗口,然后在侧边栏的“Targets”标题下选择应用程序目标。
- 在那个窗口的选项卡栏中,打开“通用”面板。
- 在“嵌入二进制文件”部分下点击
+
按钮。 - 添加下载的
RxContacts.framework
。 - 就是这样!
开始使用
import RxContacts
store.rx.requestAccess(for: CNEntityType.contacts).subscribe { (event) in
switch event{
case .next(let bool):
break
case .error(let error):
break
case .completed:
break
}
}
通知
//Posted notifications when changes occur in another CNContactStore.
store.rx.didChange().subscribe { (event) in
}
方法
unifiedContacts(matching predicate: NSPredicate, keysToFetch keys: [CNKeyDescriptor])
unifiedContact(withIdentifier identifier: String, keysToFetch keys: [CNKeyDescriptor])
groups(matching predicate: NSPredicate?)
containers(matching predicate: NSPredicate?)
enumerateContacts(with fetchRequest: CNContactFetchRequest)
execute(_ saveRequest: CNSaveRequest)