[BS-18] 对OC中不可变类的理解】的更多相关文章

对OC中不可变类的理解 OC中存在很多不可变的类(如NSString,NSAttributedString,NSArray,NSDictionary,NSSet等),用它们创建的对象存在于堆内存中,但是其中存储的内容是在创建时就确认的,其内容以后就不能再更改了. 具体的原理已写在如下截图中,就不重复描述了.…
@selector(): 可以理解@selector()就是取类方法的编号,他的基本行为类似于C语言中的函数指针(指向函数的指针).它们通过传递方法的地址(或编号)来实现把方法当做参数的效果. 不过在C语言中,可以直接把一个函数名赋给一个函数指针,但是在OC中不行,而是要通过@selector语法来取.它的括号里传入的是方法名,返回结果是SEL类型,该类型本质上就是方法的编号(地址). OC中可以通过SEL类型(即方法编号)来动态的调用方法.其实OC中调用方法的本质是消息传递:系统给对象发送执行…
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of-swift-type-from-objective-c // Swift -------------------------------- @objc protocol FooDelegate:NSObjectProtocl { func bar() } class Foo: UIViewContr…
通过哨兵参数实现,相当于nil. 1.c语言中 #import <stdio.h> #import <stdarg.h> int addemUp(int firstNum,...) { va_list args;//指向参数的指针 int sum = firstNum; int number; va_start(args, firstNum);//firstNum是...前1个参数 while(1) { number = va_arg(args, int);//返回参数列表中指针a…
NSFileHandle 1.NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等) //判断是否有 tagetPath 文件路径,没有就创建 NSFileManager *fileManage = [NSFileManager defaultManager]; BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil]; if (success) { NSLog(@"…
扩展类是一种静态的一种类的调用方法,通过实例化进行调用.利用this进行指正该类,有参数的时候直接在后面追加参数. 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 38 39 40 41 42 43 44 45 46 47 48 //必须定义为公共的静态类 public static class Studentinfo{     //定义一个…
传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人困惑! 如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成.构造函数示例: //函数名和实例化构造名相同且大写(非强制,但这么写有助于区分构造函数和普通函数) function Person(name,age) { this.name = name; this.age=age…
昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDirctionary类 // // main.m // 19_NSDictionary // // Created b…
今天来看一下Foundation框架中的NSDictionary类,NSMutableDictionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDictionary类 // //  main.m //  19_NSDictionary // //  Created by jiangwei on 14-10-12. //  Copyright (c) 2…
昨天学习了Foundation框架中NSArray类和NSMutableArray类:http://blog.csdn.net/jiangwei0910410003/article/details/41809719,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的.…