阅读更多
摘要:Playgrounds是Swift中的一个亮点,让你能够在编写代码的同时实时地看到运行结果,那Objective-C是不是就没有这一福利?开发者Krzysztof Zabłocki推出的KZPlayground,就相当于是Objective-C中的Playgrounds。
Playgrounds可以说是Swift中的一个亮点,让你能够在编写代码的同时实时地看到运行结果,而无需再去重复经历传统的编辑-编译-运行-调试这一周期。当你在Playgrounds上把代码修改完成后,就可以将这段代码直接用到项目中去。对于学习新的API、原型代码、算法等很有帮助。不过它是存在于Swift中的,那么如何在Objective-C中使用?对此,开发者Krzysztof Zabłocki推出的KZPlayground解决了这一问题,相当于是Objective-C中的Playgrounds。



KZPlayground主要特性:

  • 比Swift的Playgrounds速度要快。
  • 动画值自动更新。
  • 无关IDE,运行它时,可直接在VIM中修改代码。
  • 完整的iOS模拟器并能够获取iOS的所有特性,所以你可以使用原型产品进行编码。
  • 专为快速原型准备的Nice DSL。
  • 支持CocoaPods,你可以将它添加到现有的项目中进行试验。
  • 开源,代码已托管至Github上。

技术细节:



  • Worksheet是一个可以添加视图/控件并能与之交互的地方。你可以使用平时在iOS最常用的所有东西,比如UIGestureRecognizers等。
  • Tick counter:累计已经被加载的代码修改次数。

控件

  • Button

KZPAction(@"Press me", ^{  
// Magic code  
})  

  • Images

  • 从库中选择图像

KZPAdjustImage(myImage);  
KZPWhenChanged(myImage, ^(UIImage *img) {  
  imageView.image = img;  
});  

  • Values

KZPAdjustValue(scale, 0.5f, 1.0f) //- for floats  
KZPAdjustValue(position, 0, 100) //- for integers  

你也可以自己设置默认值:
KZPAdjustValue(position, 0, 100).defaultValue(50) 

  • Block回调,KZPAdjust也是可用的。

动画

  • Block动画回调,当每个屏幕刷新时代码都将被执行。

KZPAnimate(CGFloat from, CGFloat to, void (^block)(CGFloat));  
KZPAnimate(void (^block)());  

  • 动画值自动更新,定义新变量并自动设置它们的动画。

KZPAnimateValue(rotation, 0, 360)  
KZPAnimateValueAR(scale, 0, 1)  

协调代码执行
  • 值被设置时执行代码

KZPWhenSet(myImage, ^(UIImage *img) {  
    //! magic  
});  

  • 值变动时执行代码

KZPWhenChanged(myImage, ^(UIImage *img) {  
    //! magic  
});  
  • 大小: 852.6 KB
  • 大小: 50 KB
来自: CSDN
2
0
评论 共 3 条 请登录后发表评论
3 楼 vb2005xu 2014-11-12 13:41
好赞的样子
2 楼 qingcheng123 2014-11-11 09:23
牛逼
1 楼 5mayday2006 2014-11-10 20:02
老板说为了我们不剁手,延迟一天发工资!  http://t.cn/R7puVTD

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 常见算法及其时间复杂度总结

    常见算法时间复杂度归纳总结

  • 验证矩阵乘法

    如何使用随机性矩阵乘法,随机算法在验证多项式的恒等问题比确定算法要快,而且在准确性上面也是可以接受的。假设有A,B,C三个n*n的矩阵。为了方便起见假定对模2的整数计算。我们想要快速的验证AB=C。首先想到的方法就是通过矩阵计算AB得到的矩阵与矩阵C对比。但是简单的矩阵乘法的时间复杂度为O(n^3),就算是经过优化的矩阵乘法算法的时间复杂度为O(n^2.37)。显然...

  • 算法的复杂度介绍

    对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的“时间”和“空间”两个维度去衡量。

  • 算法的时间复杂度和空间复杂度(数据结构)

    算法的时间复杂度和空间复杂度(数据结构)

  • 算法的时间复杂度大汇总(包括递归)

    算法的时间复杂度大汇总 包括时间复杂度的不同类型以及递归的时间复杂度求解

  • 矩阵求逆操作的复杂度分析(逆矩阵的复杂度分析)

    矩阵求逆操作的复杂度分析 逆矩阵的复杂度分析 1 背景 之前写过一篇关于矩阵复杂度分析的文章,没有想到阅读人数那么多。对于IT相关人士来说,从代码层次再结合基本数学知识,就能够很好地理解矩阵的复杂度如何计算得到和分析。其中一位读者提出“矩阵求逆的复杂度如何分析”。今天就来一起共同探讨一下,笔者知道,矩阵求逆有多种方法,这里就来探讨最基本的方式,其他优化方式,读者可以看完本篇博客后,自行分析,因为原理基本上差不是很多。本篇博客仅仅是抛砖引玉。 2 求逆操作分析 2.1 求逆矩阵基本原理 这里很多读者可以容易忽

  • 凸优化有关的数值线性代数知识 1矩阵结构与算法复杂性

    1矩阵结构与算法复杂性 基于浮点运算次数的复杂性分析 基本的矩阵-向量运算成本 求解线性方程组,A为系数矩阵,b为右边项。求解该方程组的一般性彼岸准方法所需要的计算量大约和成比例。但如果A具有特殊的结构,比如对称矩阵,对角矩阵,系数矩阵等,可以大大减少计算量。 基于浮点运算次数的复杂性分析 数值线性代数算法的成本经常表示为完成算法所需要的浮点运算次数关于各种问题维数的函数。 浮点运算次数...

  • 快速多级子算法(Fast Multipole Method)

    FMM(Fast Multipole Method)快速多级子算法被美国工业与应用数学学会命名为20世纪十大算法之一(http://www.uta.edu/faculty/rcli/TopTen/topten.pdf) FEM和FMM本来不太相干,为了方便放在FEM杂谈中。 通常有限元方法最后的线性方程组的系数矩阵为对称稀疏矩阵,因此编程求解计算量和内存消耗都与单元数量成线性比例关系。但其他求解偏微分方程的方法比如矩量法,边界元法等最终形成的线性方程组系数为非对称非稀疏矩阵,常规计算方法所需的存储该系数矩阵

  • python计算矩阵行列式_python – 实验确定矩阵行列式的计算复杂性

    我需要帮助确定实验中矩阵nxn的行列式的计算复杂性我的代码:import numpy as npimport timeitt0 = time.time()for n in range(1, 10):A = np.random.rand(n, n)det = np.linalg.slogdet(A)t = timeit.timeit(lambda: det)print(t)但是我得到了每个n的相同时...

  • 算法复杂度--时间复杂度10分钟快速入门

    1

  • 时间复杂度计算方法以及常见的时间复杂度

    数据结构,时间复杂度

  • 一些比较常见的算法复杂度

    一些比较常见的算法复杂度 2010-11-17 19:15:07 分类: C/C++ 若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的节点都连续集中在最左边,这就是完全二叉树。   性质:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 性质四具有n个结点的完全二叉树的深度为「l

  • FDTD使用心得

    @FDTD使用心得 FDTD是利用有限元对材料介质中电磁场传输过程中电场与磁场分布进行模拟的一款光场模拟工具软件。这款软件可以与同为Lumerical软件旗下的Mode,Device和Interconnect软件结合使用,具有参数扫描化,Matlab兼容,精确求解,自适应网格的特点。 FDTD软件的模拟过程主要如下:1,建立物理模型;2,定义仿真区域;3,设置光源;4,设置监视器;5,运行 软件和结果分析。 建立物理模型,主要包括设置物体形状和物体材质。在Structure按键中有各种常用的物体形状,可以根

  • 算法的时间复杂度

    转自:http://www.nowamagic.net/librarys/veda/detail/2195 算法的时间复杂度定义为: 在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n}=0(f(n))。它表示随问题规模n的增大,算法执行时间的埔长率和 f(n)

  • 带状矩阵[BandMatrix]解网格图一类问题

    文章目录方法适用范围思考 方法 顾名思义解这样一个方程组: 其中 ddd 称为带宽 对于传统的高斯消元(不管是回代型还是高斯-约旦型)都是 O(n3)O(n^3)O(n3) 但是如果求某些特殊问题(如概率dp,期望dp)可以做到 O(nd2)O(nd^2)O(nd2) 我们每次沿对角线对一个 d∗dd*dd∗d 的矩阵进行消元: 注意每次 d∗dd*dd∗d 的矩形只消第一列,即: 最后得到...

  • 我们可以推测矩阵乘法最优解的时间复杂度么?

    这篇博客没有从数学角度证明矩阵乘法最佳算法的时间复杂度的下限,而是从过往算法发展的进展出发,预测该下限。

  • 六种排序算法及其复杂度(面试简答+python代码)

    简单介绍了冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序等排序算法的原理、时间复杂度、空间复杂度、优势和劣势,可用于面试简答。此外,还补充了简要的python代码,可以简单看一看。

  • 【数据结构】算法的复杂度

    带你玩转数据结构!理解算法的复杂度!

  • 复杂度的理解

    复杂度是用来感性的定量化算法的计算效率的方法,复杂度分为时间复杂度以及空间的复杂度。 我以前一直在怀疑复杂度的定义,比如说两个矩阵相乘,假设两个矩阵的规模都是n阶方阵,那么需要计算n的立方次数乘法,所以就是复杂度是O(n^3),后来仔细思考,其实里面是有很多加法的操作,那么为什么不把加法的操作算进去呢?换句话说,凭什么就光光算乘法的次数? 我在读数据结构这部书的时候终于明白了,实际上我的理解是对的,我们一般考虑计算复杂度的时候,是以一个基本操作作为前提,来计算该基本操作的执行次数,当作是计算的时间复杂度,

Global site tag (gtag.js) - Google Analytics