![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS--O-C语言
文章平均质量分 61
花色1125
没有什么花朵比努力更持久更清香了吧,荣枯事过都成梦,忧喜情忘便是禅。做一个如茶的女生,纵受过万种磨难艰辛,也有茶一样绿色的心,清新的心.......
展开
-
如何打开API文档
1.苹果帮助文档 API (Application Programming Interface)应用程序编程接口 苹果每次升级iOS系统时都会添加或更新大量的接口,并且提供相应的参考文档 学会使用苹果的开发文档是开发者必备的一项技能 苹果API文档结构: Inherits from :原创 2015-11-07 16:25:48 · 8125 阅读 · 0 评论 -
iOS中的自动释放池
自动释放池:NSAutoreleasePool类 当你创建对象不想立即释放的时候可以使用autoreleasepool,那么会把对象的所有权交给最近的NSAutoreleasePool对象 autoreleasepool控制 使用autorelease对象的释放,这个对象何时释放,取决于这个autoreleasepool 1.新的 @aut原创 2015-11-13 17:58:26 · 287 阅读 · 0 评论 -
OC中retain和assign的setter方法的写法和区别
1.retain- (void)setName:(NSString *)name{ if(_name != name){ [_name release]; _name = [name retain]; }}- (NSString *)name{ return _name;}2.assign- (vo原创 2015-11-17 21:04:03 · 1219 阅读 · 0 评论 -
iOS面试题基本答案一
1、多线程使用场景:(1)往数据库中插入数据(例如,当我们把用户通讯录中的联系人存储在数据库中的时候,有些用户的联系人非常多(3000多人),一开始把这个操作放在主线程中执行,结果造成界面长时间没有反应)。解决办法:把数据库插入的操作改成在子线程中执行,当插入完毕的时候,在complete完成回调中通知住线程做相应的操作。(2)单例。数据库对象创建时用dispatch_once方法执行原创 2016-04-14 17:34:34 · 300 阅读 · 0 评论 -
UITableViewCell上添加按钮区分点击方法
在cell中先: [cell.ClassifyButton addTarget:self action:@selector(classAction:event:) forControlEvents:UIControlEventTouchUpInside];实现点击方法:-(void)classAction:(UIButton *)button event:(UIEvent *)原创 2016-04-09 11:51:27 · 608 阅读 · 0 评论 -
iOS中的内存泄露问题
一、内存管理中影响属性的内部实现的方法语义设置: retain assign copy二、解决内存泄露问题1.dealloc是NSObject中的一个实例方法,与alloc相对应,用于回收分配的内存空间。在dealloc方法中释放实例变量的内存,但必须在[super dealloc];之前进行释放有alloc retain copy的地方就要有 realease aut原创 2015-11-17 20:48:31 · 306 阅读 · 0 评论 -
iOS中的Base64加密解密
在使用过程中,直接将此类 引入到项目中即可,不需要其他辅助类 使用示例: NSString *str = [NSString stringWithFormat:@"YWE="]; NSString *str1 = [NSString stringWithFormat:@"aa"]; NSLog(@"resultStr========%@",[Com原创 2016-06-24 10:23:18 · 378 阅读 · 0 评论 -
iOS中使用textView进行图文混排的上传与显示
(1)首先在viewDidLoad中设置3个属性: self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; self.modalPresentationCapturesStatusBarAppearance = NO; (2)然后获取图原创 2017-04-11 09:36:29 · 1804 阅读 · 8 评论 -
iOS使用textView图文混排 -- 二
这一种方法是使用CoreText。实现下图效果的更简单便捷的时还有可以直接设置文字的环绕方式。 iOS sdk中为我们提供了一套完善的文字排版开发组件:CoreText。CoreText库中提供了很多的工具来对文本进行操作,例如CTFont、CTLine、CTFrame等。利用这些工具可以对文字字体每一行每一段落进行操作。1. 首先,需要引入Co原创 2017-04-11 10:25:46 · 743 阅读 · 0 评论 -
iOS中sefl点调用和_调用区别
属性调用有两种方式,一个是点调用,一个是直接使用:1、通过self.调用会调用属性的setter方法,触发懒加载,懒加载重写属性的getter方法,而_调用的则是只访问一个局部变量;原创 2017-07-13 10:29:36 · 330 阅读 · 0 评论 -
iOS中的KVC和KVO的理解
1、KVC(key value coding)是键值编码,简单的来说就是通过setValue:属性值 valueForKeyPath:属性路径 来给属性赋值的。如果属性是基本数据类型,那么这个操作就相当于的属性的setter 、getter方法;KVC的内部实现:一个对象在调用setValue的时候;a、首先根据方法名找到运行方法的时候所需要的环境参数;b、他会从自己isa指针结原创 2017-07-05 10:11:41 · 211 阅读 · 0 评论 -
iOS开发常见技术链接分享
1、iOS中打包成IPA包的四种方法http://www.jianshu.com/p/dd2b66cbf0972、斯坦大学公开课iOShttp://open.163.com/special/opencourse/ios8.html3、Unicode编码转换工具http://tool.chinaz.com/tools/unicode.aspx4、W3school学原创 2017-07-24 09:59:58 · 816 阅读 · 0 评论 -
iOS编程中的内存管理方式
1.垃圾回收:(JAVA、C#、C++、OC(只支持Mac OS))2.手动管理内存(C、C++)3.C语言内存管理:malloc分配内存空间 free释放内存空间4.OC中:(OC[Manual Refrence Count] 手动 引用 计数)5.自动管理内存 ARC(Auto Reference Count) 自动 引用 计数,iOS5之后的新特性,但并不是垃圾回收机原创 2015-11-13 17:08:18 · 269 阅读 · 0 评论 -
iOS中影响引用计数的方法
1. + alloc 开辟内存空间,让被开辟的内存空间的引用计数变为 1,由 0 到 1 的过程。2. - retain(持有) 对象引用计数 + 1,并且拥有该对象的所有权,如果之前引用计数为 1,retain之后引用计数就变为 2,如果引用计数为 5,那么,retain之后就变味 6.3. - copy 把某一内存区域的内容拷贝一份,拷贝到新的原创 2015-11-13 17:28:23 · 1001 阅读 · 0 评论 -
继承 完整的初始化方法和便利构造器
1.继承 (1)继承的上层是 (冒号后边的)父类,继承的下是 (冒号前边的)子类。 (2)继承是单向的,不能相互继承。 (3)继承具有传递性:A 继承于 B ,B 继承于 C,A 具有 B 和 C 的特征和行为。 子类能继承父类的所有特征和行为。 (4)面向对象提供了继承语法:能够大大简化代原创 2015-11-07 16:10:17 · 307 阅读 · 0 评论 -
如何修改和访问方法中受保护的实例变量
1.实例变量的可见度有三种.公共的(public) 实例变量可以在类的内部和外部操作。受保护的(protected)实例变量只能在该类的内部及其子类中进行操作私有的(private)实例变量只能在该类的内部操作。2.修改方法中受保护的实例变量首先在.m中实现赋值的方法,对实例变量进行赋值,实例变量对象 = 方法中的参数名,然后可以调用此方方法传入参数。.m中原创 2015-11-07 15:44:52 · 961 阅读 · 0 评论 -
OC中字典的操作方法 集合 动态排序
一.不可变字典 NSDictionary1.获取字典元素的个数NSUInteger count = dic.count;NSLog(@"count = %lu",count);2.获取所有Key 值NSArray *str1 = dic.allkeys;for (int i = 0;i NSLog(@"str1[%d] = %@",i,[str1 objectAtI原创 2015-11-09 20:23:14 · 679 阅读 · 0 评论 -
利用可变数组实现简单通讯录操作
1、定义联系人类Contact。实例变量:姓名、性别、电话号码、住址、分组名称。方法:初始化方法(姓名、电话号码)、显示联系人信息 Contact *contacts1 = [Contact initWithName:@"小敏" withLocal:@"洛阳理工学院" andteamName:@"忽而一夏" sex:@"女" telephoneNumber:@"188602331原创 2015-11-07 16:49:57 · 374 阅读 · 0 评论 -
OC 类 和 对象
1.类:具有相同特征和行为的事物的总称;对象:是某一个具体的实例对象是类的实例,类是对象的类型。2.创建对象时的两个方法(1) + (id)alloc; + 表示这个方法属于类,只能类执行,id返回值类型,表示任意类型,表示初始化完成的对象。(2) - (id) init; 表示这个方法属于对象,只能对象去执行,id返回值类型,表示初始化完成的对象。3.接口部分需要做的事情原创 2015-11-07 15:40:08 · 233 阅读 · 0 评论 -
Block的操作,使用typedef,局部变量,全局变量
1.使用typedef定义blocktypedef int(^Easyblock) (int,int);Easyblock block1 = ^int(int x,int y){ return x * y;};Easyblock block2 = ^int(int x,int y) { return x / y;};NSLog(@原创 2015-11-10 21:18:45 · 1332 阅读 · 0 评论 -
OC中不可变数组和可变数组的操作方法
一.不可变数组1.获取数组元素个数NSLog(@"array数组中元素的个数为%lu",array.count)原创 2015-11-09 19:47:20 · 456 阅读 · 0 评论 -
OC中字符串的使用方法
一.不可变字符串 NSString1.求字符串的长度NSUInteger length = str.length;NSLog(@"str = %@",str);2.字符串连接NSString *str2 = [str stringByAppendingString:str1];NSLog(@"str2 = %@",str2);3.字符串替换(1)直接用字符串替换原创 2015-11-09 19:45:58 · 348 阅读 · 0 评论 -
Block定义与使用
1.Block是块语法,本质上是匿名函数(也就是没有函数名的方法)。它和函数指针类似。2.Block定义int (^myBlock)(int) = ^int(int num1){return num1 + 2;};等号左边int 代表Block的返回值类型(^myBlock) ^是块标识符,后边是对象名称(int) 是参数列表的类型,可以有多个参数,也可以为0个原创 2015-11-09 17:14:38 · 391 阅读 · 0 评论 -
字典练习
1.创建一个字典,里面包含班级的各个小组,然后每个小组中又包含这组所有成员的名字, NSArray *arr1 = [[NSArray alloc] initWithObjects:@"小敏",@"小飞飞",@"小俊珍", nil]; NSArray *arr2 = [[NSArray alloc] initWithObjects:@"小黑"原创 2015-11-07 16:28:00 · 367 阅读 · 0 评论 -
在block按学号的升序和降序排列;按姓名的升序和降序排序,按年龄的升序和降序排列
练习.按学号的升序和降序排列;按姓名的升序和降序排序,按年龄的升序和降序排列。 Student *stu1 = [Student studentWithName:@"xiaoguo" withSex:@"女" wi原创 2015-11-10 21:19:29 · 2789 阅读 · 0 评论 -
使用字符串比较两个时间的大小
- (NSString *)compareStr1:(NSString *)str1 withStr2:(NSString *)str2{ NSString *hour = nil; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-M原创 2018-01-17 11:19:10 · 1882 阅读 · 0 评论