Objective-C基础
yaoliangjun306
坚持自己!
展开
-
OC类
int main(int argc, const char * argv[]) { // 1.通过类创建对象 /* 1.开辟存储空间, 通过new方法创建对象会在堆 内存中开辟一块存储空间 2.初始化所有属性 3.返回指针地址 创建对象的时候返回的地址其实就是类的第0个属性的地址 但是需要注意的是: 类的第0个原创 2016-06-13 20:46:57 · 275 阅读 · 0 评论 -
OC中isKindOfClass和isMemberOfClass的区别
首先看看两个方法的苹果官方解释:isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required) 这个方法用来判转载 2017-08-07 09:01:09 · 3849 阅读 · 0 评论 -
isEqual,isEqualToString,== 三者的区别
isEqual: 判断两个对象的等同性,首先判断两个对象的地址是否相同,再判断类型是否一致, 然后再判断对象的具体内容是否一致isEqualToString: 直接判断字符串内容是否相等==: 对于基本数据类型, ==运算符比较的是值; 对于对象类型, ==运算符比较的是对象的地址是否相同#import <Foundation/Foundation.h>int main(int argc, co原创 2017-07-21 12:45:26 · 8651 阅读 · 2 评论 -
同时重写属性的getter/setter方法和readonly的使用
1.新建Person类// Person.h#import <Foundation/Foundation.h>@interface Person : NSObject@property (nonatomic, assign, readonly) int age; // 对外只读@property (nonatomic, copy) NSString *name; @end// Person.m原创 2017-07-21 10:33:39 · 2293 阅读 · 0 评论 -
OC内存管理
OC内存管理1.内存管理的重要性移动设备的内存极其有限,每个app所能占用的内存是有限制的下列行为都会增加一个app的内存占用创建一个OC对象 定义一个变量 调用一个函数或者方法 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等如果app占用内存过大, 系统可能会强制关闭app, 造成闪退现象, 影响用户体验2.什么是内转载 2016-12-18 21:13:10 · 839 阅读 · 0 评论 -
@property基本概念
1.什么是@property@property是编译器的指令 什么是编译器的指令 ?编译器指令就是用来告诉编译器要做什么! @property会让编译器做什么呢?@property 用在声明文件中告诉编译器声明成员变量的的访问器(getter/setter)方法 这样的好处是:免去我们手工书写getter和setter方法繁琐的代码2.@property基本使用在@inteface中,用来自动转载 2016-12-18 11:41:45 · 1175 阅读 · 0 评论 -
成员变量修饰符
/* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可以在子类中访问父类中被public修饰的成员变量 @private >不可以在其它类中访问被private修饰的成员变量 >可以在本类中访问被private修饰的成员变量 >不可以在子类中访问父类中被private修饰的成员变转载 2016-12-17 20:33:42 · 844 阅读 · 0 评论 -
autorelease基本使用
autorelease基本使用1.autorelease基本概念autorelease是一种支持引用计数的内存管理方式, 只要给对象发送一条autorelease消息, 会将对象放到一个自动释放池中, 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作注意, 这里只是发送release消息, 如果当时的引用计数(reference-counted)依然不为0, 则该对象依然不会被释转载 2016-12-19 21:45:21 · 498 阅读 · 0 评论 -
load和initialize的区别
@implementation Person// 只要程序启动就会将所有类的代码加载到内存中, 放到代码区(无论该类有没有被使用到都会被调用)// load方法会在当前类被加载到内存的时候调用, 有且仅会调用一次// 如果存在继承关系, 会先调用父类的load方法, 再调用子类的load方法+ (void)load{ NSLog(@"Person类被加载到内存了");}//原创 2016-12-18 12:46:30 · 1788 阅读 · 0 评论 -
instancetype和id的区别
// 1. id在编译的时候不能确定对象的真实类型, instancetype在编译的时候能确定对象的真实类型 // 2. id可以用来定义变量、参数、返回值, instancetype只能用于作为返回值 // 注意点: 构造方法尽量使用instancetype, 可以避免在编译期确定错误原创 2016-12-18 12:11:06 · 412 阅读 · 0 评论 -
iOS数据持久化方案
iOS数据持久化方案在iOS开发中,有很多数据持久化的方案,接下来说一下常用的5种方案:plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite CoreData1.plist文件(属性列表)plist文件是将某些特定的类,通过XML文件的方式保存在目录中。- (void)plist{ // Document路径 N原创 2016-12-16 16:06:45 · 274 阅读 · 0 评论 -
iOS 沙盒路径/创建文件夹
iOS 应用目录简介iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library和 tmp。Library包含Caches、Preferences目录。Documents:应用中用户数据可以放在原创 2016-12-16 14:44:26 · 7608 阅读 · 0 评论 -
局部变量和全局变量以及成员变量的区别
@interface Person : NSObject{ // 成员变量: // 写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量) // 成员变量只能通过对象来访问 // 注意: 成员变量不能离开类, 离开类之后就不是成员变量 成员变量不能在定义的同时进行初始化 // 存储: 堆(当前对象对应的堆的存储空间中) // 存储在原创 2016-06-13 21:19:33 · 2991 阅读 · 0 评论 -
类方法和对象方法的区别
/* 类方法和对象方法的区别 0. 对象方法以-开头 类方法以+开头 1. 对象方法必须用对象调用 类方法必须用类来调用 2. 对象方法中可以直接访问属性(成员变量) 类方法中不可以直接访问属性(成员变量) 3. 类方法和对象方法可以进行相互调用 4.1对象方法中可以直接调用类方法 4.2类方法中间接调用对象方法 (注意: 不建议这样原创 2016-06-13 20:50:46 · 3924 阅读 · 0 评论 -
OC一些不常用的函数
算术函数int rand() // 随机数生成。int abs(int a) // 整数的绝对值,abs(-10); 结果为10double fabs(double a) // double类型的绝对值,fabs(-3.14); 结果为3.14double fabsf(float a) // fabsf类型的绝对值,fabsf(-3.14); 结果为3.14double floor(do原创 2017-10-09 18:09:01 · 359 阅读 · 0 评论