MIT Graph实践概述
MIT Graph实践概述
Features功能
• iCloud Support
• Multi Local & Cloud Graphs
• Thread Safe
• Store Any Data Type, Including Binary Data
• Relationship Modeling
• Action Modeling For Analytics
• Model With Graph Theory and Set Theory
• Asynchronous / Synchronous Search
• Asynchronous / Synchronous Saving
• Data-Driven Architecture
• Data Model Observation
• Comprehensive Unit Test Coverage
• Example Projects
Requirements
- iOS 8.0+ / Mac OS X 10.10+
- Xcode 8.0+
Communication
如果需要帮助,请使用堆栈溢出。(标签“cosmicmind”)
如果想问一个一般性问题,使用堆栈溢出。
如果发现了一个bug,并且能够提供可靠地复制它的步骤,那么就说出一个问题。
如果有功能请求,说出问题。
如果想投稿,提交一个请求。
Installation安装
Embedded frameworks require a minimum deployment target of iOS 8.
https://github.com/CosmicMind/Graph
CocoaPods
CocoaPods是Cocoa项目的依赖关系管理器。可以使用以下命令进行安装:
$ gem install cocoapods
要使用CocoaPods将Graph的核心功能集成到Xcode项目中,在Podfile中指定它:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'Graph', '~> 3.1.0'
然后,运行以下命令:
$ pod install
Carthage
Carthage是一个分散的依赖关系管理器,构建依赖关系并提供二进制框架。 可以使用以下命令自制软件安装基:
$ brew update
$ brew install carthage
要使用Carthage将Graph集成到Xcode项目中,请在Cartfile中指定:
github "CosmicMind/Graph"
运行carthage update来构建框架并拖动构建的图形框架你的Xcode项目。 变更日志
Graph是一个不断发展的项目,在整个开发过程中都会遇到变化。建议在更新版本之前查看变更日志。
样品
下面是一些示例,以了解如何在应用程序中使用Graph。
访问示例repo以查看使用图形的示例项目。
为图像卡创建实体
实体是一个模型(数据)对象,它代表一个人、一个位置或一件事。它可以存储属性值,组的成员,并且可以被标记。
在下面的示例中,使用Material创建一个ImageCard视图,并用一个实体填充它的属性,该实体存储该视图的数据。
Creating data
let graph = Graph()
let entity = Entity(type: "ImageCard")
entity["title"] = "Graph"
entity["detail"] = "Build Data-Driven Software"
entity["content"] = "Graph is a semantic database that is used to create data-driven applications."
entity["author"] = "CosmicMind"
entity["image"] = UIImage.load(contentsOfFile: "frontier", ofType: "jpg")
graph.sync()
Setting the view's properties
imageCard.toolbar?.title = entity["title"] as? String
imageCard.toolbar?.detail = entity["detail"] as? String
imageCard.imageView?.image = entity["image"] as? UIImage
let contentLabel = UILabel()
contentLabel.text = entity["content"] as? String
imageCard.contentView = contentLabel
let authorLabel = UILabel()
authorLabel.text = entity["author"] as? String
imageCard.bottomBar?.centerViews = [authorLabel]
- Download the complete ImageCard example.
- Learn more about Material's ImageCard.
实时搜索用户列表
使用搜索API非常灵活。在下面的示例中,Search用于通过Material的SearchBar提供的动态UI创建对用户名的实时搜索。
Preparing the search criteria
let graph = Graph()
let search = Search<Entity>(graph: graph).for(types: "User").where(properties: "name")
Asynchronously searching graph
search.async { [weak self, pattern = pattern] (users) in
guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
return
}
var data = [Entity]()
for user in users {
if let name = user["name"] as? String {
let matches = regex.matches(in: name, range: NSRange(location: 0, length: name.utf16.count))
if 0 < matches.count {
data.append(user)
}
}
}
self?.tableView.data = data
}
- Download the complete Search example.
- Learn more about Material's SearchBar.
MIT Graph实践概述的更多相关文章
- MVC5 网站开发实践 概述
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 MVC5 网站开发实践 2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...
- ASP.NET MVC5 网站开发实践 - 概述
前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...
- AWS 架构最佳实践概述(十一)
AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...
- 哈工大知识图谱(Knowledge Graph)课程概述
一.什么是知识图谱 知识(Knowledge)可以理解为 精炼的数据,知识图谱(Knowledge Graph)即是对知识的图形化表示,本质上是一种大规模语义网络 (semantic network) ...
- docker安全最佳实践概述
/************************************************* * Author : Samson * Date : 08/07/2015 * Test plat ...
- MVC5 网站开发实践 2.2、管理员身份验证
上次完成了管理员的登录,这次要解决对管理员登录后的验证,采用AuthorizeAttribute属性的方式.之前还要解决几个问题,然后才重写验证类,最后稍微改一下界面. 目录 MVC5 网站开发实践 ...
- MVC5 网站开发实践 2.1、管理员登陆
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 MVC5 网站开发实践 2.后台管理 1. 创建SHA256加密方法. 在Data项目中添加文件夹[Security ...
- MVC5 网站开发实践 2、后台管理
目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目 从这一部分开始做后台管理,首先是基本框架的 一.Data项目 1.项目添加EntityFramework引用 在Data项 ...
- MVC5 网站开发实践 1、建立项目
目录 MVC5 网站开发实践 概述 一.建立项目 1.建立团队项目 在办公室和家里使用不同的电脑,为了方便代码的共享将项目建立为团队项目. 如图打开vs2013→新建→团队项目(图1),会自动 ...
随机推荐
- IT培训软件测试怎么样,问问“过来人”!
经常看到有人在网上发帖子问:"XX培训(IT培训机构)怎么样,学过的老哥可以出来讲讲真话吗?"问这种问题的同学,来,站起来!我不得不在这儿说你两句:你要想知道一家IT培训机构到底怎 ...
- .NET Core 对象( Transient、Scope、Singleton )生命周期详解 (对象创建以及释放)
首先我们在VS2019中创建一个.NET Core的控制台程序,方便演示: 需要安装两个依赖包 Microsoft.Extensions.DependencyInjection 依赖注入对象的具体实现 ...
- 基于任务的异步编程(Task,async,await)
这节讲一下比较高级的异步编程用法Task,以及两个异步关键字async和await. Task是在C#5.0推出的语法,它是基于任务的异步编程语法,是对Thread的升级,也提供了很多API,先看一下 ...
- c#基于supersocket的简单websocket服务端收发消息实现
using log4net; using SuperSocket.SocketBase; using SuperSocket.WebSocket; using System; using System ...
- What are CBR, VBV and CPB?
转自:https://codesequoia.wordpress.com/2010/04/19/what-are-cbr-vbv-and-cpb/ It's common mistake to to ...
- leecode之Implement strStr()
KMP算法的实现: #include <stdio.h> #include <string.h> #include <stdlib.h> int strStr(ch ...
- 【BUAA软工】提问回顾与个人总结
链接到以前提问题的博客 在之前的博客我曾经提问过以下几个问题 为什么单元测试必须由写程序的人完成? 过早优化,过早泛华:何时为过早? 为何使用goto语句? 用户需求分析:分而治之,如何分? 兼容性测 ...
- CRM系统推动教育行业数字化转型
目前,教育培训的潜在市场规模巨大,并且保持着迅猛的发展态势.同时,随着众多外资企业不断涌入中国市场,与国内大大小小的培训机构展开竞争,所以教育行业的竞争也是非常的激烈.传统的教育行业亟待数字化转型,才 ...
- [刷题] 455 Assign Cookies
要求 贪心算法的关键:判断问题是否可以用贪心算法解决 给小朋友们分饼干,每个小朋友"贪心指数"为g(i),饼干大小值s(i) g(i):小朋友需要的饼干大小的最小值 若s(j)&g ...
- Gaussian Mixture Model
Gaussian Mixture Model (GMM).事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经 ...