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]

实时搜索用户列表

使用搜索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
}

MIT Graph实践概述的更多相关文章

  1. MVC5 网站开发实践 概述

    目录 MVC5 网站开发实践  概述 MVC5 网站开发实践  1.建立项目 MVC5 网站开发实践  2.后台管理 MVC5 网站开发实践  2.1.管理员登陆 MVC5 网站开发实践 2.2.管理 ...

  2. ASP.NET MVC5 网站开发实践 - 概述

    前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...

  3. AWS 架构最佳实践概述(十一)

    AWS 架构最佳实践 AWS合理架构的框架支柱 安全性 - 保护并监控系统 能够保护信息.系统和资产 通过风险评估和缓解策略 可靠性 - 从故障中恢复并减少中断 从基础设施或服务故障中恢复 动态获取计 ...

  4. 哈工大知识图谱(Knowledge Graph)课程概述

    一.什么是知识图谱 知识(Knowledge)可以理解为 精炼的数据,知识图谱(Knowledge Graph)即是对知识的图形化表示,本质上是一种大规模语义网络 (semantic network) ...

  5. docker安全最佳实践概述

    /************************************************* * Author : Samson * Date : 08/07/2015 * Test plat ...

  6. MVC5 网站开发实践 2.2、管理员身份验证

    上次完成了管理员的登录,这次要解决对管理员登录后的验证,采用AuthorizeAttribute属性的方式.之前还要解决几个问题,然后才重写验证类,最后稍微改一下界面. 目录 MVC5 网站开发实践  ...

  7. MVC5 网站开发实践 2.1、管理员登陆

    目录 MVC5 网站开发实践  概述 MVC5 网站开发实践  1.建立项目 MVC5 网站开发实践  2.后台管理   1. 创建SHA256加密方法. 在Data项目中添加文件夹[Security ...

  8. MVC5 网站开发实践 2、后台管理

    目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目   从这一部分开始做后台管理,首先是基本框架的 一.Data项目 1.项目添加EntityFramework引用 在Data项 ...

  9. MVC5 网站开发实践 1、建立项目

    目录 MVC5 网站开发实践 概述   一.建立项目 1.建立团队项目 在办公室和家里使用不同的电脑,为了方便代码的共享将项目建立为团队项目.   如图打开vs2013→新建→团队项目(图1),会自动 ...

随机推荐

  1. Python小程序 -- 人民币小写转大写辅助工具

    大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数字以及人民币汉字大写写法,转换的过程中有一定的逻辑难度,较为麻烦,所以笔者心血来潮,花了点时间简单实现了一下这一转换过程,以供初学者参考. 输入 ...

  2. LA3135简单多路归并(优先队列)

    题意:       有N个任务,每个任务都有自己的时间间隔(就是每t秒请求执行一次)和任务id,这n个任务公用一个cpu,每次我们都执行时间靠前的,如果相同时间内有多个任务,就执行任务id小的,要求模 ...

  3. Windows PE资源表编程(枚举资源树)

    资源枚举 写一个例子,枚举一个PE文件的资源表.首先说下资源相关的作为铺垫. 1.资源类型也是PE可选头中数据目录的一种.位于第三个类型. 2.资源目录分为三层.第四层是描述文件相关的.这些结构是按照 ...

  4. Linux中su、sudo、sudo -i的用法和区别

    sudo :暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端再使用 sud ...

  5. 【python】Leetcode每日一题-设计停车系统

    [python]Leetcode每日一题-设计停车系统 [题目描述] 请你给一个停车场设计一个停车系统.停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位. 请你实现 Parki ...

  6. CentOS运行多个Tomcat操作步骤

    一:修改环境变量 在/et/profile文件追加以下内容 # tomcat1 env ( 第一个tomcat 的环境变量) export CATALINA_HOME=/usr/local/apach ...

  7. HTML <video>

    HTML <video> 元素 用于在HTML或者XHTML文档中嵌入媒体播放器,用于支持文档内的视频播放.你也可以将 <video> 标签用于音频内容,但是 <audi ...

  8. 0902-用GAN生成动漫头像

    0902-用GAN生成动漫头像 目录 一.概述 二.代码结构 三.model.py 3.1 生成器 3.2 判别器 四.参数配置 五.数据处理 六.训练 七.随机生成图片 八.训练模型并测试 pyto ...

  9. matlab添加当前路径下的所有子目录

    % 添加当前路径下的所有子目录addpath(genpath(pwd));

  10. NAG博客目录

    一.Scrum Meeting 1. Alpha Scrum meeting 1 Scrum meeting 2 Scrum meeting 3 Scrum meeting 4 Scrum meeti ...