本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的SwiftDoc.org网站创造者.在本文中,他介绍了在Swift中使用JavaScript的方法和技巧,对于iOS和Web应用工程师有着非常实用的价值,以下为译文: 在RedMonk发布的2015年1月编程语言排行榜中,Swift采纳率排名迅速飙升,从刚刚面世时的68位跃至22位,Objective-C仍然…
    有些时候你精通一门语言,但是会发现你其实整天在和其它语言打交道,也许你以为这些微不足道,不至于影响你的开发进度,但恰恰是这些你不重视的东西会浪费你很多时间,我一直以为我早在几年前就已经精通JavaScript了,直到目前,我才越来越觉得JavaScript远比我想象的复杂和强大,我开始崇拜它,就像崇拜所有OOP语言一样-    趁着节日的空隙,把有关JavaScript的方法和技巧整理下,让每个在为JavaScript而烦恼的人明白,JavaScript就这么回事!并希望JavaScri…
在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: + (instancetype)sharedSingleton{ static id instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[self alloc] init]; }); return instance; } 首先可以考虑仿照OC中的写法写一个. 因此Swift中的一种写法可以如下: cl…
swift 中什么时候需要处理异常,在调用系统某个方法的时,该方法最后有一个throws 说明该方法会抛出异常,如果一个方法抛出异常,那么需要对该异常进行处理 swift 异常处理提供了三种方法 方式一: try  ,程序员手动处理异常 do { let regx = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive) } catch { //系统给我们提供了一个临时常量 error //在这里处理异常 pri…
系统如何调用super方法 系统默认只会在构造函数中,自动调用super.init()方法,而且是在所写方法的尾部进行调用. 在其他函数中,如何需要调用父类的默认实现,都需要手动去实现. 如果在构造函数中使用KVC,一定要先调用父类的super.init()方法. 自定义Log的方法 以下语法为swift3的最新语法 获取打印所在的文件 let file = (#file as NSString).lastPathComponent 获取打印所在的方法 let funcName = #funct…
我们通常在进行开发的时候,会用到一个叫做 单例模式 的东西.相信大家也都对这种模式非常熟悉了.而且单例的使用在平时的开发中也非常频繁. 比如我们常用到的 NSUserDefaults.standardUserDefaults(). 在 Swift 中我们如何实现单例模式呢?如果你曾经对 Objective-C 比较熟悉的话,你可能首先会想到这样写: class DBManager { class var instance: DBManager? class func sharedInstance…
Swift 2.0 中对语言进行了又一次的改进,这次将整个语言变得更加面向对象化,比如在 Swift 1.x 中如果要判断某个元素是否在数组中,就需要用到 contains 函数: if contains(array, value) { ... } 而在 Swift 2.0 中,contains 被作为 Array 的一方法来使用了.所以我们只需这样调用即可: if array.contains(value) { ... } 这种方式,更加具有面向对象思维.也更符合广大开发者朋友的习惯- 另外,…
1:在页面中直接嵌入JavaScript <script language="javascript">..........</script> 2:链接外部JavaScript <script language="javascript" src="...../xx.js"/>…
如何使用 SqlDataAdapter 来检索多个行 以下代码阐明了如何使用 SqlDataAdapter 对象发出可生成 DataSet 或 DataTable 的命令.它从 SQL Server Northwind 数据库中检索一组产品类别. using System.Data;using System.Data.SqlClient; public DataTable RetrieveRowsWithDataTable(){  using ( SqlConnection conn = new…
返回1970/01/01至2012/3/21之间的毫秒数: var d = Date.parse("March 21, 2012"); d 输出结果: 1332259200000     实例 在本例中,我们将取得从 1970/01/01 到 2012/03/21 的毫秒数: var d=Date.parse("March 21, 2012");var minutes=1000*60;var hours=minutes*60;var days=hours*24;va…
原文:Using JavaScript in Swift Projects: Building a Markdown to HTML Editor 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 一直想寫一篇文章.關於怎样將 Swift 和 Javascript 結合在一起,以構建強大的支持富文本的 App.這並不是我們第一次聽人說要將 Javacript 代碼嵌入到 iOS 專案中了.但當你讀完本文后,你會感到這個過程會變得前所未有的簡單,仿佛魔術一般.你仅仅须要做非常少…
网页中插入javascript的方法常见的有两种: 一.直接使用html标记 JavaScript 可以出现在 html的任意地方.使用标记<script>…</script>,你可以在 HTML 文档的任意地方插入 JavaScript,甚至在<HTML>之前插入也不成问题.不过如果要在声明框架的网页(框架网页)中插入,就一定要在<frameset>之前插入,否则不会运行. <script> ... (JavaScript代码) ... <…
本篇分为两部分: 一.Swift中的方法嵌套 二.Swift中的命名空间 一.Swift中的方法嵌套 在 swift 中我们可以让方法嵌套方法,如: func appendQuery(var url: String, key: String, value: AnyObject) -> String { func appendQueryDictionary(url: String, key: String, value: [String: AnyObject]) -> String { //..…
在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等. 我们来看一个 Objective-C 的例子就会更加明白了: NSArray *arr1 = @[@"cat",@"hat",@&qu…
在之前的帖子里聊过状态管理有多痛苦,有时这是不可避免的.一个状态管理的例子大家都很熟悉,那就是单例.使用Swift时,有许多方法实现单例,这是个麻烦事,因为我们不知道哪个最合适.这里我们来回顾一下单例的历史,看一看在Swift中如何正确地实现单例. 如果你想直接看看Swift中单例的正确实现方式,直接跳到帖子最后即可. 往事回忆之ObjC单例 Swift是Objective-C的一种自然演变,它用如下的方式实现单例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16…
原文地址:http://www.jb51.net/article/5688.htm 这篇介绍JavaScript方面的日志,我在是Clang上看到的.作者介绍挺全面的,所以转载过来让感兴趣的朋友看一下.呵呵--- 有些时候你精通一门语言,但是会发现你其实整天在和其它语言打交道,也许你以为这些微不足道,不至于影响你的开发进度,但恰恰是这些你不重视的东西会浪费你很多时间,我一直以为我早在几年前就已经精通JavaScript了,直到目前,我才越来越觉得JavaScript远比我想象的复杂和强大,我开始…
swift中重写set get方法是这样的. 先定义一个变量,当调用set方法的时候,系统会有一个newValue, 将newValue赋值给我们定义的变量,然后从get方法返回去. swift中一般重写较少 eg. //求周长 var perimeter :Double{ get{return 3.0 * sideLength } set{ sideLength = newValue / 3.0 } } 这样的话,在set的时候 会出现一个 newValue 这个newValue就代表了 变量…
介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是复制栈上的信息,这样就会出现以下情况,如果变量是对象,那么这一操作,复制的只是真正对象所在 的堆内存空间的起始地址,这就是所谓的浅拷贝,如果是深拷贝,则是在内存堆空间中重新分配一个内存,并把分配的内存的起始地址复制过去. 2. 引用类型数据和值类型数据:谈到引用类型数据和值类型数据,自然而然的联想到…
Swift中的分类 1.创建一个空的swift文件 2.关键字extension,格式: extension 要扩展的类名 {} extension UIButton { } Swift中扩展init方法的注意事项 如果构造方法前面没有convenience单词,代表是一个初始化构造方法(指定构造方法). 如果构造方法前面有convenience单词,代表是一个便利构造方法(方便构造方法). 指定构造方法与便利构造方法的区别: 指定构造方法中必须对所有的属性进行初始化. 便利构造方法不用对所有属…
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与UnsafeMutablePointer类型,分别对应为const Type*类型与Type *类型. 而在Swift编程语言中,由于一般数组(Array)对象都无法直接用于C语言中含有指针类型的函数参数(比如:void*),所以往往需要将数组转为指针类型,此外也需要将数组中元素内容存放到连续的存储空间.此外,…
Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间        window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.        $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同         window.onload不能同时编写多个,如果有多个window.onload…
通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码.用如下方法引用JS文件:<script src="script/admin.js" type="text/javascript"></scr…
需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controller来获取app var appElement = document.querySelector('[ng-controller=mainController]'); 然后在获取$scope变量: var $scope = angular.element(appElement).scope(); 如…
最近收集了一些关于JavaScript绑定事件的方法,汇总了一下,不全面,但是,希望便于以后自己查看. JavaScript中绑定事件的方法主要有三种: 1 在DOM元素中直接绑定 2 JavaScript代码中直接绑定 3 绑定事件监听函数 一.在DOM元素中直接绑定 也就是直接在html标签中通过 onXXX=“” 来绑定.举个例子: <input type="button" value="点我呦" onclick="alert("he…
今天用Swift写了个视图,在视图上加个手势,如下所示: panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "beginDragged:") addGestureRecognizer(panGestureRecognizer) 运行了下程序,然后崩溃了.崩溃日志如下: [**.SwipeCardView beginDragged:]: unrecognized selector sent to ins…
[实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 using mshtml; using System; using System.Collections.Generic; using…
在C#中模拟Javascript的setTimeout方法 背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javascript中为了实现平滑的动画一般采用setTimeout模拟setInterval,这是因为:setTimeout可以保证两次定时任务之间的时间间隔,而setInterval不行(小于设置的间隔时间).C#中如何模拟setTimeout呢? System.Timers.Timer 模拟setInte…
Javascript中alert</script>的方法: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.ge…
我们知道在ruby之类的动态语言中对象方法可以先从类中预先抽取,然后再应用到某个具体对象上.这称为无绑定的method对象,也可以叫做lazy绑定. 下面举个例子: irb(main):004:0> system("ruby -v") ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15] => true irb(main):005:0> class A irb(main):006:…
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在swift中,如果方法的最后一个参数是一个闭包类型,则可以省略该参数,直接在函数后面跟一个闭包,比如: func test(count:Int,(Int)->Bool){ //... } 可以这么调用: test(11){(x)->Bool in //... } 但是有些情况不能省略括号,比如for语句中: for dinosaur in dino…