如何手动调用playground的XCPCaptureValue以展示Swift过程数据

playground可以实时显示程序的运行结果,有时我们使用循环或嵌套、迭代,那么数据的展示就可能要分批和对比,这样才能看出结果,有时我们可以直接从图形上瞄一眼就知道程序对不对了。playground支持自定义的数据捕捉和展示。可以实现这些图表的对比,其中有一项就是XCPCaptureValue函数。

这是函数:func XCPCaptureValue<T>(identifier: String, value: T) ,手动捕捉历史数据,identifier是显示在屏幕右边的图表的标题的名字,value是任何需要进行捕捉记录的数据,因为有可能我们是在循环中捕捉数据,用于展示数据变化的过程。

也就是说每一套捕捉到的数据形成一张图表,然后在下次循环或下个迭代可以对比展示变化的情况。每次循环只要变一下identifier,就可以重画这个状态图。下文使用一个交换排序算法进行说明,注意XCPCaptureValue在程序中的用法。

在Xcode6 beta中创建playground文件,将文章后台的代码拷贝到playground,显示出以下界面,窗体右边已有一些运行结果显示出来了:

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

在屏幕右下角点击+号,可以展现图表界面,如下图。XCPCaptureValue好处就是可以便于学习和比较,可以对一些算法形象演示。

时间: 2024-12-22 01:51:40

如何手动调用playground的XCPCaptureValue以展示Swift过程数据的相关文章

javafx-JavaFX中 点击按钮调用脚本的同时如何展示进度条的进度

问题描述 JavaFX中 点击按钮调用脚本的同时如何展示进度条的进度 在做javafx的一个项目有一个功能是 点击处理按钮会调用脚本去执行一些操作 现在为了程序在执行操作的时候给用户更好的体验需要加一个进度条来显示执行的进度 (假设60秒内执行完成) 我现在遇到的问题是执行脚本的时候 界面就卡住了进度条无法显示进度可能是线程的问题 谁有办法解决的?谢谢~ 代码片段: btn02.setOnAction( e->{//Windows系统下启动应用程序(计算器) executeCmd("&qu

button-通过选择器和手动performClick()修改背景颜色

问题描述 通过选择器和手动performClick()修改背景颜色 有背景按钮: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawabl

Vuejs——(2)Vue生命周期,数据,手动挂载,指令,过滤器

原教程: http://cn.vuejs.org/guide/instance.html http://cn.vuejs.org/guide/syntax.html 本博文是在原教程的基础上加上实例,并尝试说明的更详细. (十)Vue实例的生命周期 如图:(我自己翻译的中文版,英文版请查看本博文顶部的,第一个链接) (八)传入的数据绑定 先创建一个对象(假如是obj),然后将他传入Vue实例中,作为data属性的值,那么 ①obj的值的变化,将影响Vue实例中的值的变化: ②相反一样: ③可以在

zxing-用Zxing读条形码,但是onActivityResult调用失败

问题描述 用Zxing读条形码,但是onActivityResult调用失败 条形码是一维的时候: public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void test(

[EGORefreshTableHeaderView]手动启动下拉更新的方法

Q:在EGORefreshTable中手动启动下拉更新的方法? A:EGORefreshTable中提供了方法,让用户下拉table到一定位置实现下拉更新的效果,现在我想复用这种效果用于table更新,比如我做一个按钮,当用户点击这个按钮时,执行这种数据加载中的效果,或者app刚刚启动时,也可以执行这个操作.详细参考代码 -(void) ViewFrashData{ [tblView setContentOffset:CGPointMake(0, -75) animated:YES]; [sel

《C#多线程编程实战(原书第2版)》——3.2 在线程池中调用委托

3.2 在线程池中调用委托 本节将展示在线程池中如何异步的执行委托.另外,我们将讨论一个叫做异步编程模型(Asynchronous Programming Model,简称APM)的方式,这是.NET历史中第一个异步编程模式. 3.2.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter3\Recipe1目录中. 3.2.2 实现方式 请执行以下步骤来了解如何在线程池中调用委托: 1.启动Vis

API经济最主要是学会调用API

众所周知,阿里云提供了全方位.多层次的云计算产品体系.阿里巴巴技术委员会主席王坚博士说过,要让云计算像水电一样方便获得.为了开发者无缝衔接阿里云的众多服务,将它们集成到自己的应用系统,阿里云开放了API和用来访问API的工具SDK. 什么是阿里云SDK? 阿里云Java SDK让您不用复杂编程即可访问云服务器.CDN(内容分发网络).OSS(对象存储)等丰富又强大的云计算基础设施.它是面向开发者的编程库,能够直接应用在开发者的应用程序里,被应用逻辑调用.打个简单的比方,应用程序是家用电器,阿里云

使用Playground编写第一个Swift程序

从控制台输出"HelloWorld"是我学习C语言的第一步,也是我人生中非常重要的一步.多年后的今天,我仍希望以HelloWorld作为第一步,与大家共同开启一个神奇.瑰丽的世界--Swift编程. 本章以HelloWorld作为切入点,向大家系统介绍如何使用Xcode的Playground编写和运行Swift程序代码. 编写和运行Swift程序有多种方式,我们可以通过在Xcode中创建一个iOS或Mac OS X工程来实现,也可以通过使用Xcode6提供的Playground来实现.

浅谈C++中的构造函数分类及调用规则_C 语言

构造函数的分类这里简单地将C++中的构造函数分一下类,直接看下面的代码表达,说明在注释中: #include <iostream> using namespace std; class Text { public: Text() // 无参数构造函数 { m_a = 0; m_b = 0; cout << "无参数构造函数" << endl; } Text(int a) // 有参数构造函数 { m_a = a; m_b = 0; cout <