摘要:KVC:操作属性的一种方式:设置属性的值、获取属性的值,主要有两个方法:setValue:forKey: 和 valueForKey: 1.setValue:forKey: 底层执行机制: (1)调用setter方法 (2)若是没有setter,KVC机制则在类中寻找_key变量或key属性(通过_ 阅读全文
关键字 self
2016-03-30 18:11 by xiangjune, 160 阅读, 0 推荐, 收藏, 编辑
摘要:self 总是指向调用方法的对象。 self总是代表当前类的对象。当它出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的是当前类的实例对象; 当这个方法被调用时,它所代表的对象才被确定下来:谁在调用这个方法,self就代表谁。 self不能出现在类方法中,因为类方法的调用 阅读全文
常见的出现内存循环引用的场景有哪些?
2016-03-30 13:56 by xiangjune, 278 阅读, 0 推荐, 收藏, 编辑
摘要:定时器(NSTimer):NSTimer经常会被作为某个类的成员变量,而NSTimer初始化时要指定self为target,容易造成循环引用(self->timer->self)。 另外,若timer一直处于validate的状态,则其引用计数将始终大于0,因此在不再使用定时器以后,应该先调用inv 阅读全文
XCODE中的蓝色文件夹与黄色文件夹
2016-03-30 11:36 by xiangjune, 832 阅读, 0 推荐, 收藏, 编辑
摘要:XCODE中的蓝色文件夹与黄色文件夹 黄色文件夹比较常见 - group , 在XCODE中以文件夹的形式存在,有层次感,但是实际文件在工程下是散乱的,没有层级结构。是XCODE中虚拟目录。 蓝色文件夹一般作为资源文件用 - folder,其他的文件不参与编译。 阅读全文
oc 关键字
2016-03-25 16:43 by xiangjune, 183 阅读, 0 推荐, 收藏, 编辑
摘要:assign适用于基本数据类型,weak是适用于NSObject对象,并且是一个弱引用。 assign其实页可以用来修饰对象,那么为什么不用它呢?因为被assign修饰的对象在释放之后,指针的地址还是存在的,也就是说指针并没有被置为nil。如果在后续内存分配中,刚才分到了这块地址,程序就会崩溃掉。而 阅读全文
uiwebview 兼容性 - IOS8及以上 WKWebView
2016-03-25 15:03 by xiangjune, 740 阅读, 0 推荐, 收藏, 编辑
摘要:@import WKWebView; WKWebView *webView = [[WKWebView alloc]init......]; 使用。 WKWebView兼容 IOS 及 OSX。IOS8及以上支持。 阅读全文
php 调用 java 接口
2016-03-03 13:50 by xiangjune, 6797 阅读, 0 推荐, 收藏, 编辑
摘要:php 需要开启 curl模块 /** HTTP 请求函数封装*/function http_request_cloudzone($url, $data){ //var_dump($url."test"); if(!$url){ return ""; } $ch = curl_init (); cu 阅读全文
多线程
2016-02-17 10:10 by xiangjune, 135 阅读, 0 推荐, 收藏, 编辑
摘要:// NSThread 创建线程 // 1. initWithTarget:selector:object: 创建,需要调用start方法进行启动 NSThread *thread1 = [[NSThread alloc]initWithTarget:self selector:@selector( 阅读全文
AVAudioPlayer init 报错: Error Domain=NSOSStatusErrorDomain Code=1937337955
2016-02-16 17:15 by xiangjune, 1889 阅读, 0 推荐, 收藏, 编辑
摘要:Error Domain=NSOSStatusErrorDomain Code=1937337955 原因: 音频文件的格式不规范导致 对于iOS7以上的系统(含iOS7),在确定文件格式的情况下可以使用initWithData:fileTypeHint:error:和initWithContent 阅读全文
事件穿透
2016-02-16 11:26 by xiangjune, 171 阅读, 0 推荐, 收藏, 编辑
摘要:1.touch事件传递 touchu的VIEW作为第一响应者,接收响应事件; 若是需要传递事件到各个父层,则调用 [super touchesBegan:touches withEvent:event];即可,否则,就只自己响应触摸事件。 2.手势事件传递 会响应叠层VIEW的第一个手势事件 阅读全文