w3cschool 编程狮,随时随地学编程
下载APP
|
登录
个人中心
首页
入门教程
编程课程
特色实战
畅学全站
首页
/
Swift 文章精选
/
如果你还在用子类(Subclassing),那就不对了
如果你还在用子类(Subclassing),那就不对了
“你可能对我的标题感到诧异。我并不是说子类没有价值,尤其在使用单一继承(single inheritance)的情况下,类和子类当然是强有力的工具。然而我想说的是,iOS日常开发的问题是对类和继承的过度使用...”。作者:ray16897188
别让双手闲下来,来做一些练手项目吧
一次 Objective-C 到 Swift 的改写之旅
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
经验和评论
我在开发第一个 Swift 应用过程中学到的四件事
国外iOS大牛的分享经验和对Swift的看法
别让双手闲下来,来做一些练手项目吧
如果你还在用子类(Subclassing),那就不对了
一次 Objective-C 到 Swift 的改写之旅
设计师+Xcode:突破产品开发的流程界线
Objective-C 开发者对 Swift 亮点的点评
Cocoa 之死
Cocoa 永生
Swift 2.0 初探
Swift 2 有哪些新特性[译]
iOS 9 Adaptation Tips
WatchOS 2 Tutorial: Animations Using Groups
An Introduction to watchOS 2 ClockKit
The Not-So-Complicated Complications
Swift 2.0 异常处理
WatchKit FAQ
Ray Wenderlich-WatchKit 初探
WatchKit Storyboard攻略-开发基础与小技巧
Glance 示例介绍
Sina Visitor System
详解Xcode 6的视图调试
Reducing WatchKit Traffic With View Models
案例学习 - 面向Apple Watch自身特性及局限的产品重设计
案例学习 - 关于Watch应用的导航、通知、复杂任务及动效
74 个 Swift 标准库函数
单例在Swift中的正确实现方式
技巧和方案
盘点开发者最喜爱的Swift技巧
用 Swift 的函数式编程解决硬币问题
面向轨道编程 - Swift 中的异常处理
使用状态机的好处
如何正确地定义一个类变量(和类常量)
用 Optional 来避免异常指针问题
如何用 Swift 思维设计网络请求
正确地启用 Logging 机制
Swift中的UIKit动力学(一)
Swift中的UIKit动力学(二)
在 iOS8 创建一个交互性强的本地通知
Hamburger Button Animation
Swift扩展的三个微妙细节
radex/DiffyTables
使用 Quick 框架和 Nimble 来测试 ViewControler
Artsy 的测试之旅
UICollectionViews 的拖拽效果
如何用代码控制以不同屏幕方向打开新页面
关键帧动画实用教程
自己动手构建表单验证功能
UIKeyCommand
如何制作一个炫酷好玩的爆炸效果
如何在 iOS 中实现一个可展开的 Table View
深入理解Kingfisher(上)
深入理解Kingfisher(下)
Core Data 线程大揭秘
短文:自定义 UITextView 关键字高亮与点击检测
教程和指南
Swift 入门指引
斯坦福大学公开课:iOS 8开发
iOS 9 开发
Swift Style Guide(中文版)
iOS Core Animation: Advanced Techniques
包管理器
iOS证书申请、开发、打包、排查等系列教学
Writing High-Performance Swift Code (Apple)
codepath/ios_guides
Swift REPL入门介绍
Swift REPL:一切皆可重定义
UIStackView
Alamofire网络库基础教程
Alamofire网络库进阶教程
RxSwift 函数响应式编程
Swift 的响应式编程革命
如何使用 iOS 9 应用瘦身功能
watchOS 2 教程(一):开始吧
watchOS 2 教程(二):列表
3D Touch介绍:电子秤App与快捷操作
3D Touch之我见
Swift 中枚举高级用法及实践
Swift Documentation
Swift 的响应式编程
iOS 架构模式 - 简述 MVC, MVP, MVVM 和 VIPER
构建 Swift 框架所面临的挑战
如何用 Swift 语言构建一个自定控件
为iPhone6设计自适应布局(一)
为iPhone6设计自适应布局(二)
WKWebView
JavaScriptCore
关闭
MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }