OC小结】的更多相关文章

#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) {#pragma mark -----------------------OC类和对象---------------------------------------------------    /*1 OC-CObjective -- C 简称OC,OC是C语言的扩充,并且OC是iOS和OS…
retain cycle 的产生 说到retain cycle,首先要提一下Objective-C的内存管理机制. 作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度. 比如:内存计数. 在 Objective-C中,凡是继承自NSObject的类都提供了两种方法,retain和release.当我们调用一个对象的retain时,这个 对象的内存计数加1,反之,当我们调用rel…
内存管理在Objective-C中的重要性就像指针在C语言中的重要程序一样. 虽然作为一门高级语言,但OC却没有内存回收机制.这就需要开发者来对动态内存进行管理.OC中内存管理的范围是:任何继承了NSObjective的对象,对基本数据类型是无效的.这和它的管理原理有关. 每个对象内部都保存了一个与之关联的整数,称为引用计数器,当使用alloc.new.或copy创建一个对象时,对象的引用计数器被设置为1.给对象发送一条retain信息,可以使引用计数器的值加1,给对象发送一条release信息…
1 什么是 OC 语言? OC 语言即面向对象语言,它扩展了 ANSI C 语言,将 SmallTalk 式的消息传递机制加入到 ANSI C 中.它是苹果 OS 和 iOS 以及相关的 API,Cocoa 和 Cocoa Touch 的主要编程语言. 2 OC 语言的特点: 支持 C 语言语法,是 ANSI-C 语言的一个超集,是一种高效的编程语言. 是 C 语言面向对象的扩展,完全支持面向对象的特性. 简洁易读的编程风格,使编程和阅读更加清晰. 兼容性好,可以在项目中直接导入 C 和 C++…
周末与一个老朋友吃饭聊天,因为他正在培训班学习iOS开发,就随便聊了几句,发现自己OC基础上的欠缺和一些知识点的混淆.特此整理如下. 1.空指针 没有存储任何内存地址的指针就称为空指针(NULL指针) 空指针就是没有被具体初始化之前,其值为0的指针 来两个例子 Person *p1 = nil; Person *p2 = NULL; 下边会给出nil和NULL的区别 2.野指针 “野指针”不是空指针,野指针是指向了一块不可用的内存地址的指针,也就是说,野指针内是有保存一个内存地址的值,但是,指向…
一.对swift工程 经实践,网上的方法都无法成功,后来思考DEBUG宏定义方式,经实测有效,方式如下: 注意:不能把swift flags 小三角折叠后双击设置-DTarget4AppStore, 这样会自动清空之前生成或定义的宏定义.   #if Target4AppStore self.view.backgroundColor = UIColor.yellow//效果在运行appstore target时,通过界面调试工具可看到背景图为黄色 #else self.view.backgrou…
// //  main.m //  11 - 内容总结 // //  Created by vic fan on 16/7/9. //  Copyright © 2016年 李洪强. All rights reserved. //   //内容的总结: //1 创建一个person类型的指针,指针保存的是对象的地址 //2 用person实例化出一个实例对象,对象名person   #import <Foundation/Foundation.h>   @interface Person :…
本文介绍一下如何使用Mac OS X自带终端快速创建.编译.链接OC程序. 1.打开终端 顺序:打开Finder——应用程序——实用工具——终端 2.打开需要存放 .m 文件的路径(比如我需要放到桌面,那么我就输入cd Desktop) 创建 .m 文件 (touch iOS开发——01_第一个OC程序.m) 打开 .m 文件 (open iOS开发——01_第一个OC程序.m ) 注:命令的空格不能省略 编写代码 3.进行编译链接 编译(cc -c iOS开发——01_第一个OC程序.m )回…
一.ARC ARC 是一种编译器特性!而不是IOS运行时特性,和JAVA中得垃圾回收机制完全不一样ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译器为你处理了一切ARC规则:只要还有一个强指针变量指向对象,对象就会保持在内存中弱指针指向的对象被回收后,弱指针会自动变为nil指针,不会引发野指针错误使用注意:1.不允许调用release.retain.re…
在OC中多线程管理包含GCD.NSThread.NSOperationQueue. 下面简单介绍. 进程和线程 进程:正在进行中的程序叫做进程,负责程序运行的内存分配. 每一个进程都有自己独立的虚拟内存空间. 线程:线程是进程中一个特立的执行路径(控制单元) 一个进程至少包含一条线程,即主线程,开发中通常把比较耗时的线程(如:网络请求)放在子线程中执行. 创建线程的目的:开启一条新的执行路径,运行指定的代码,与主线程的代码能够实现同时执行. 一.GCD GCD:Grand Central Dis…