![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习iOS
long__rain
这个作者很懒,什么都没留下…
展开
-
Application lifecycle
每一个应用都会经历这几个阶段。在每个阶段完成或者过渡的时候,会调用Appdelegate中的方法。例如,进入Background的时候会调用fun applicationDidEnterBackground(UIApplication)原创 2016-01-12 20:33:39 · 572 阅读 · 0 评论 -
Xcode实时渲染——@IBDesignable
当应用到 UIView 或 NSView 子类中的时候,@IBDesignable 让 Interface Builder 知道它应该在画布上直接渲染视图。你会看到你的自定义视图在每次更改后不必编译并运行你的应用程序就会显示。其中IBDesignable中的IB是 Interface Builder 的缩写。标记一个自定义视图为 IBDesignable,只需在类名前加上原创 2015-12-24 13:47:58 · 341 阅读 · 0 评论 -
理解iOS中的MVC设计模式
转自:http://liuzhichao.com/p/1379.html模型-视图-控制器(Model-View-Controller,MVC)是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已广泛应用于用户交互应用程序中。在iOS开发中MVC的机制被使用的淋漓尽致,充分理解iOS的MVC模式,有助于我们程序的组织合理性。转载 2015-12-06 16:30:31 · 363 阅读 · 0 评论 -
Optional变量的?和!的区别
我们定义一个optional变量时,往往在后面加个?。然后在对它进行解析时,加个!号解析。但是, @IBOutlet weak var display: UILabel!在定义Outlet变量时,我们定义的时候就加了感叹号。这是因为,为了方便起见,为outlet变量开了后门。如果定义的时候加?号,那么每次解析的时候都要再加!,未免麻烦。所以,当我们如上面代码那样定义时,调用这个原创 2015-12-05 22:04:42 · 316 阅读 · 0 评论 -
再谈继承
之前写过继承,但实际看教程的时候还是被各种长串的代码蒙蔽。今天看stanford白胡子的教程,才知道。class ViewController: UIViewController { }其实,这就是继承,意思是,新建一个ViewController,它继承自UIViewController。原创 2015-12-05 18:53:56 · 228 阅读 · 0 评论 -
TableView Segues
原创 2016-01-06 20:07:55 · 246 阅读 · 0 评论 -
UITableView加载数据
原创 2016-01-06 20:01:55 · 298 阅读 · 0 评论 -
创建UITableViewCell
下图中的代码在UITableViewController中呈现。因为UITableViewController是UITableView的delegate。所以,在UITableViewController中调用func tableView(tv: , cellForRowAtIndexPath indexPath: ) -> UITableViewCell时。UITableView中会执行这个函数原创 2016-01-06 10:47:19 · 271 阅读 · 0 评论 -
UITableViewController值得注意的基本概念
UITableViewController:1. 实际上是一个包含了UITableView的ViewController。2. UITableViewController是UITableView的delegate和Datasource,如下图3. 每次新建一个UITableViewController,Xcode会自动将UITableViewController设置为UITab原创 2016-01-06 10:14:19 · 230 阅读 · 0 评论 -
UITableView和UITableViewCell的关系
UITableViewCell是UITableView的子类,只是比较特殊的UITableView。原创 2016-01-06 10:28:22 · 345 阅读 · 0 评论 -
Swift 格式化转换字符串
import Foundationvar x = 100000.100339837762var xx = String(format: "%.8f", x)print("\(xx)")//100000.10033984原创 2015-12-04 15:29:51 · 1260 阅读 · 0 评论 -
Swift之多线程
let qos = Int(QOS_CLASS_USER_INITIATED.rawValue) dispatch_async(dispatch_get_global_queue(qos, 0)) { () -> Void in ......//这一句不是在mainqueue执行原创 2016-01-05 20:17:59 · 265 阅读 · 0 评论 -
类方法(class methods)
import Foundationclass MyObject{ var count = 1 class func makeObjectWithCount(count: Int) -> MyObject { let m = MyObject() m.count = count return m }}let m原创 2015-12-03 18:52:09 · 461 阅读 · 0 评论 -
计算类型(computed properties)、set、get
有时候我们需要用同一个函数同时实现对变量的读(get)或者写(set)。这时会用到计算类型。import Foundationclass Person { var firstName = "Yun" var lastName = "Long" var fullName: String{ get{ // 读 retur原创 2015-12-03 18:30:57 · 351 阅读 · 0 评论 -
Swift中函数名称的构成习惯
func downloadImageForSearchResult(searchResult: SearchResult, withTimeout timeout: NSTimeInterval,andPlaceOnButton button: UIButton) {... }swift的函数,输入大于两个变量时,除了第一个变量以外的,都有一个外部标记external labels原创 2015-12-03 13:15:26 · 200 阅读 · 0 评论 -
Xcode实时渲染——@IBDesignable
在定义的参数前,添加IBDesignable,图片attributes inspector中就会出现相应的设置项,很方便于调试import UIKit@IBDesignableclass FaceView: UIView { @IBInspectable var lineWidth: CGFloat = 3 {didSet{setNeedsDisplay()}原创 2015-12-24 13:57:37 · 267 阅读 · 0 评论 -
Swift中的元组(turple)
元组是多个值组成的复合值类型import Foundationlet money = (100,"EUR")let currency = money.1let amout = money.0print("I have \(amout) \(currency) ") //I have 100 EURlet money2 = (amout: 100,currency: "EUR原创 2015-12-08 00:16:49 · 465 阅读 · 0 评论 -
swift中的协议
转自:http://blog.csdn.net/xn4545945/article/details/39800061Swift中的协议能被类, 枚举,结构体实现.[java] view plaincopyprotocol SomeProtocol{ //协议内容 } class SomeClass : Som转载 2015-12-26 19:59:47 · 237 阅读 · 0 评论 -
Swift之从xls文件读取数据
研究了半天,并没有研究出来如何在swift中读取xls格式的数据,故只能复制粘贴到txt文档中。数据源如下它横排由/t分割,竖行之间由/r分割,最后实现如下,详情见注释 func readfile() -> ([Double],[Double])// 从Source File 读取txt数据 多列 { var datax = [Double原创 2015-12-27 13:42:36 · 1921 阅读 · 0 评论 -
Swift字符串分割——多重分隔符
//多重分割符:有2个或两个以上分隔符var myString2 = "One-Two-Three-1 2 3"var array2:String[] = myString2.componentsSeparatedByCharactersInSet(NSCharacterSet (charactersInString: "- "))//["One", "Two", "Three", "1"原创 2015-12-27 12:57:31 · 1100 阅读 · 0 评论 -
Swift读取txt格式的数据并转换成Double格式
折腾了半天,搞定了从txt文档读取数据,并转换成了Double格式 func readfile() -> [Double]// 从Source File 读取txt数据 { var data = [Double]() if let txtFile = NSBundle.mainBundle().pathForResource("UIKitDynam原创 2015-12-27 12:43:54 · 1964 阅读 · 0 评论 -
Swift字符串分割
// 演示按空格分割//单一分隔符:只有一种分割符var myString = "Berlin Paris New York San Francisco"//1.隐式定义字符串数组var myArray = myString.componentsSeparatedByString(" ")//2.显示定义字符串数组var myArray2 : [String] = myString.原创 2015-12-27 12:30:38 · 603 阅读 · 0 评论 -
Swift中String和UTF8编码的NSData相互转化
let testStr = "212 212"let testData = testStr.dataUsingEncoding(NSUTF8StringEncoding) // String转UTF8let dogString:String = (NSString(data: testData!, encoding: NSUTF8StringEncoding))! as String //原创 2015-12-27 12:28:35 · 10148 阅读 · 0 评论 -
swift之mutating关键字
原文:http://blog.csdn.net/tounaobun/article/details/39694233?utm_source=tuicool&utm_medium=referral在swift中,包含三种类型(type): structure,enumeration,class其中structure和enumeration是值类型(value type),clas转载 2015-12-26 18:10:41 · 242 阅读 · 0 评论 -
weak的使用
转自:http://www.jianshu.com/p/e30fd63c8e0f什么是循环引用Swift 是自动管理内存的,这也就是说,我们不再需要操心内存的申请和分配。当我们通过初始化创建一个对象时,Swift 会替我们管理和分配内存。而释放的原则遵循了自动引用计数 (ARC) 的规则:当一个对象没有引用的时候,其内存将会被自动回收。这套机制从很大程度上简化了我们转载 2015-12-26 17:04:06 · 350 阅读 · 0 评论 -
Swift中的Range<Int>类型
import Foundationvar range: Range = Range(start: 0, end: 5)var range1 = 0...5var range2 = 0..<5print(range)print(range1)print(range2)//打印结果//0..<5//0..<6//0..<5//Range只用于Int//var range原创 2015-12-09 13:27:49 · 1142 阅读 · 0 评论 -
Swift中使用do-catch语句进行异常处理
do { try functionWillThrowError() } catch { // deal with error }原创 2015-12-07 13:20:59 · 2667 阅读 · 0 评论 -
Swift ?? 符号的使用
??左边为nil的时候,取右边。import Foundationvar x: Double?var y: Double?x = 1.2let xx = x ?? 0.0let yy = y ?? 0.0print(xx)print(yy)// 输出1.20.0原创 2015-12-25 13:58:03 · 839 阅读 · 0 评论 -
Swift中的required修饰符
普通子类通常情况下,一说到required修饰符,我们最先想到的应该就是普通类(class)的init()方法了。比如下面这个类:class MyClass { var str:String init(str:String) { self.str = str }}当我们定义一个MyClass的子类(subclass)并实例化这个子类转载 2015-12-25 13:25:25 · 262 阅读 · 0 评论 -
Swift中的willSet与didSet
转自:http://www.cnblogs.com/zhouyinhui/p/3804195.html在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化无需说太多,看看下面的代码你就能很快明白的import Foundationclass People : NSObject{ //普通属性 var firstNa转载 2015-12-25 11:05:10 · 244 阅读 · 0 评论 -
Swift之extension
extension 可以为已有的类添加新的属性供调用。如下为UIColor属性添加新的属性random产生随机的颜色private extension UIColor{ class var random: UIColor{ switch arc4random()%5 { case 0: return UIColor.greenColor()原创 2016-01-09 19:03:30 · 304 阅读 · 0 评论 -
dictionary实例的解析和强制解析
import Foundation// 由于dictionary类型的数据也是Optional类型,所以使用的时候也需要解析。var ages: [String: Int]ages = ["rain":23,"jun":20]var age_of_rain = ages["rain"]print("age_of_rain:\(age_of_rain)") //output: age_原创 2015-12-02 20:56:15 · 343 阅读 · 0 评论 -
使用可选值链(optional chaining)解析optional变量
import Foundationclass MyObject { var count = 7 var sb = "is you" func did(){ print("i am not nil") }}var xyz: MyObject? // 定义optional 变量xyz = MyObject()xyz!.did() //原创 2015-12-02 21:19:57 · 636 阅读 · 0 评论 -
Checklists学习日志之父类、子类、继承、重写
看教程里面各种陌生的代码污七糟八,想搞清楚几个概念,父类、子类、继承和重写从定义一个类开始class Vehicle{ var numberOfWheels: Int var maxPassengers: Int func description() -> String { return "\(numberOfWheels) wheels;原创 2015-11-19 21:33:48 · 298 阅读 · 0 评论 -
Checklists学习日志之使用NSUserDefaults存储数据
最近开始讲解使用NSUserDefaults存储数据的方法。讲得太复杂了,不及我先自己看看。 func saveWithNSUserDefaults() { let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject("oxox", forKey: "name")原创 2015-11-25 14:02:58 · 296 阅读 · 0 评论 -
Swift中的断言assert
import Foundationvar str = "Hello!"assert(str != "Hello!" , "SB" )// str不等于Hello时,输出SB// print assertion failed: SB: file /Users/....方便调试原创 2015-12-10 19:44:38 · 271 阅读 · 0 评论 -
Swift中的AnyObject和as
当需要在工作中使用 Cocoa APIs,它一般接收一个AnyObject[]类型的数组,或者说“一个任何对象类型的数组”。这是因为 Objective-C 没有明确的类型化数组。但是,你常常可以确定包含在仅从你知道的 API 信息提供的这样一个数组中的对象的类型。在这些情况下,你可以使用强制形式的类型检查(as)来下转在数组中的每一项到比 AnyObject 更明确的类型,不需要可选解析原创 2015-12-10 18:59:59 · 254 阅读 · 0 评论 -
爱在黄昏日落时——Checklists学习日志之在App关闭/进入后台时保存文件
并不需要每次对内容进行更改时就保存文件到硬盘。在App关闭/进入后台时保存文件,更加直观、方便、有效。像从前一样,我们首先在AddListsViewerController文件获取文件路径并定义存储文件的函数 func documentsDirectory() -> String { let paths = NSSearchPathForDirectoriesInDo原创 2015-11-24 16:02:32 · 302 阅读 · 0 评论 -
Checklists学习日志之prepareForSegue方法的替代
教程里面讲了prepareForSegue的替代方法,贴出来看一下 override func tableView(tableView: UITableView, accessoryButtonTappedForRowWithIndexPath indexPath: NSIndexPath) { // 这个函数和prepare for segue 相同作用原创 2015-11-23 15:32:25 · 415 阅读 · 0 评论 -
Checklists学习日志之创建UITableViewCell的一般方法
教程很早之前讲到的利用prototype cells创建cell的方法搞的我云里雾里。现在好了,现在在AllListsViewController中创建的方法比较好,纯代码。粘贴如下 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITabl原创 2015-11-22 12:23:46 · 355 阅读 · 0 评论