IOS开发-OC
阿飞小伙子_blogs
这个作者很懒,什么都没留下…
展开
-
@property指示符
在声明属性的时候一般会带上几个指示符,常用指示符有:声明属性的一般顺序是:线程安全、访问权限、内存管理//线程安全atomic/nonatomic //访问方式readwrite/readonly//内存管理assignstrongweakcopyunsafe_unretainedretainatomic/nonatomic指定合成存取方法是否为原...原创 2018-11-03 22:18:03 · 128 阅读 · 0 评论 -
NSString用法总结
写在开头最近踩了多个string的坑,嗯嗯!还是要抽时间总结一下的,顺便在后面写几个自己写的或者学习别人的算法1、NSString的创建//使用字面量创建字符串NSString *string_0 = @"afeixiaohuozi"; //使用类方法创建字符串NSString * string_1 = [NSString string];string...原创 2019-05-11 23:18:20 · 7376 阅读 · 0 评论 -
NSString字符高亮算法
写在开头在开发过程中,遇到的一些算法问题,写在这里记录一下一、高亮规定字符串//搜索匹配算法//高亮<em></em>中间的字符串//NSString *aString = @"I am a <em>string</em>, not a a<em>string</em>, just a <em&...原创 2019-05-11 23:18:40 · 368 阅读 · 0 评论 -
NSMutableString的用法
写在开头之前一篇文章总结了NSString的用法,这里简单总结一下NSMutableString作为补充,之后还有NSMutableAttributedString的用法。如果一个字符串需要经常改变,可以使用NSMutableStringNSMutableString是NSString的子类,所以,NSString的方法,NSMutableString都可以用一、常见用法...原创 2019-05-11 23:18:33 · 2484 阅读 · 0 评论 -
AWS S3服务
写在开头最近工程中做了一个视频上传的相关需求,使用了亚马逊AWS S3服务作为存储,关于IOS的资料比较少,也填了不少坑,这里总结一下:S3服务Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。自己去查官网吧:https://aws.amazon.com/cn/s3/...原创 2019-05-21 11:49:51 · 4721 阅读 · 2 评论 -
IOS NSDictionary原理
写在前面关于NSDictionary,是日常开发中经常用到的空间,但是关于它的实现原理,很少去研究。在这里做一个总结字典的底层实现还是依靠HashMap,HashMap 的本质上市 数组 + 链表HashMap1、HashMap的实现HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。HashMap的主干是一个Entry数组HashMap...原创 2019-06-02 01:04:44 · 782 阅读 · 0 评论 -
Block 阅读笔记
https://www.jianshu.com/p/25a7ba546eachttps://www.jianshu.com/p/4e79e9a0dd82看了"小胖白兔"的两篇关于Block的文章,感觉获益良多。再次总结一下阅读笔记,便于自己查看1、Block是什么Block本质上也是一个OC对象,是封装了函数调用以及函数调用上下文环境的OC对象2、Block有哪几种Block的类型...原创 2019-06-21 14:38:58 · 222 阅读 · 0 评论 -
UITableView优化
UITableView 的优化主要从以下3个方面分析:基础的优化准则(高度缓存, cell 重用…)学会使用调试工具分析问题异步绘制基础的优化准则1、正确地使用UITableViewCell的重用机制UITableView最核心的思想就是 UITableViewCell 的重用机制。UITableView 只会创建一屏幕(或一屏幕多一点)的 UITableViewCell ,每当...原创 2019-06-23 22:40:59 · 1078 阅读 · 0 评论 -
常见问题汇总
写在最前面这些问题算是平时的一个总结积累,放在这里随时更新和查询使用atomic一定是线程安全的吗?答:atomic能够保证数据的完成性,也就是说他只是读写安全,并不能准确定义说他是线程安全的。因为线程可以对数据做很多操作,包括读写,还有release、retain,假如说对一个已经释放的对象进行release,就会导致crash@synthesize和@dynamic的区别答:@s...原创 2019-06-23 22:38:24 · 305 阅读 · 0 评论 -
IOS 排序算法
写在前面排序算法写在创建的NSMutableArray分类中,因此self代表我们待排序的数组;算法兼容了升序与降序两种情况,根据输入的isAcs来判断是升序或者降序NSMutanleArray中存放都是对象,对于基本类型的排序对象,对应的是NSNumber或NSString,对数据进行比较的时候要使用compare,不能直接使用>、<、==#import "NSMutabl...原创 2019-06-23 22:52:29 · 222 阅读 · 0 评论 -
关于Class
Class 的含义typedef struct objc_class *Class; typedef struct objc_object { Class isa; } *id; typedef struct objc_selector *SEL; typedef id (*IMP)(id, SEL, ...);Class 被定义为一个指向 objc_c...原创 2019-06-24 09:25:43 · 215 阅读 · 0 评论 -
+ (void)load和 + (void)initialize
+ initialize和 + load是 NSObject 类的两个类方法,它们会在运行时自动调用,我们可以利用其特性做一些初始化操作。initialize和load的区别在于:load是只要类所在文件被引用就会被调用,而initialize是在类或者其子类的第一个方法被调用前调用。所以如果类没有被引用进项目,就不会有load调用;但即使类文件被引用进来,但是没有使用,那么initialize...原创 2019-07-10 16:56:17 · 332 阅读 · 0 评论 -
ios开发之切换RootViewController
写在开头最近做需求开发,在登陆请求返回后需要填写一些基本信息,然后再显示主页面显示登录界面时创建了RootViewController显示主页面的时候,以Tabbar作为新的RootViewController切换RootViewController以后,页面看起来没有什么问题,查看层级关系发现原来的界面并没有释放,造成了内存泄漏1.pushViewController...原创 2019-05-01 11:01:31 · 6597 阅读 · 0 评论 -
一点点小问题
写在开头在开发的过程中,总是会遇到一些问题,在解决了以后,还是需要做个总结,方便以后进行查看这个地方不用来总结什么问题,仅仅用来记录一些方法!会持续更新、添加1、当前View不响应手势有些需求,例如点击(拖动)添加的蒙层,该蒙层不需要响应该事件,让下一层级的View响应该事件- (UIView*)hitTest:(CGPoint)point withEvent:(UI...原创 2019-05-01 00:42:13 · 180 阅读 · 0 评论 -
NSDate使用方法
刚刚做IOS开发第一个需求的时候,需要判断是否为同一天,最近需求需要判断两个日期是否为同一周,在网上没有找到合适的方法,自己写了一个,目前用着还行。相关方法链接(待补充)NSDateNSDateFormatterNSDateComponentsNSDateComponentFormatterNSCalendar1、NSDate的常用方法1.1初始化方法//...原创 2018-11-04 10:13:55 · 262 阅读 · 0 评论 -
tableview的一个适配问题
IOS11以后,创建的scrollView机器子View会被系统自动适配,导致tableview向下偏移self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;1、IOS11新增属性scrollView在iOS11新增的两个属性:adjustContentIns...原创 2018-11-04 10:25:19 · 538 阅读 · 0 评论 -
IOS粒子系统
CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上1、CAEmitterLayer:emitterPosition//决定了粒子发射形状的中心点,emitterSize //则决定了粒子发射形状的大小,emitterShape //是粒子从什么形状发射出来,...原创 2018-11-04 10:36:45 · 363 阅读 · 0 评论 -
UIButton的压缩与拉伸动画
本文主要完成UIButton的一个拉伸与压缩动画压缩动画:将半圆角的的按钮压缩成圆形按钮(背景波纹动画单独完成)拉伸动画;将圆形按钮拉伸成半圆角Button注:压缩和拉伸过程装,要保证圆角不变形初始状态:初始状态/结束状态 压缩状态:压缩后状态 代码如下: //带圆角的UIButton压缩成圆形//圆形UIButton拉伸成带圆角...原创 2018-11-04 11:21:49 · 570 阅读 · 0 评论 -
UITextField使用方法
最近使用UITextField 和 UITextView 。对于其相关内容进行了一些总结,主要方便自己以后的使用UITextField :只能输入一行,不可以滚动显示浏览全文,可以设置提醒文字(有placeholder属性),有占位,继承自UIView[UIControl]。UITextField的常规设置//初始化textfield并设置位置及大小UITextField ...原创 2018-11-17 21:20:58 · 324 阅读 · 0 评论 -
UITextView使用方法
最近使用UITextField 和 UITextView 。对于其相关内容进行了一些总结,主要方便自己以后的使用UITextView:能输入多行,可以滚动显示浏览全文,不可以设置提醒文字(没有placeholder属性),无占位,继承自UIScrollView。UITextView的常规方法//初始化UITextViewUITextView *textview = [[...原创 2018-11-17 21:51:06 · 444 阅读 · 0 评论 -
NSCharacterSet使用方法总结
需求中需要限制UITextField的输入和粘贴内容,特此总结相关用法,以备以后查询使用1、常用的创建NSCharacterSet的类方法系统提供的快捷创建方法://获取所选字符串以外的的内容@property (readonly, copy) NSCharacterSet *invertedSet;//相反字符串限制[NSCharacterSet controlCha...原创 2018-11-24 22:15:35 · 1159 阅读 · 0 评论 -
NSRange使用方法总结
*******这篇文章是在总结NSCharacterSet文章时用到了相关属性,算是那篇文章的一个补充**********NSRange是Foundation框架中比较常用的一种结构体,用来表示事物的一个范围.通常是字符串里的字符范围或者数组里的元素范围。 typedef struct _NSRange { NSUInteger location; //...原创 2018-11-24 22:27:04 · 1987 阅读 · 0 评论 -
支持后台播放的音频、视频开发中遇到的问题
1、音频想要支持后台播放,需要进行一些设置,申请响应的后台权限:附后台播放设置链接2、因为APP内有视频课程,所以申请了后台权限以后视频也可以后台、锁屏播放(播放视频的声音),这里需要根据自己的需求单独进行处理。3、申请后台、锁屏播放以后,主要的问题就是通知中心的控制问题,特别是当视频和音频同时存在时,需要进行相应的处理,才能展示出想要的效果。MPNowPlayingInfoCent...原创 2019-04-30 19:22:05 · 3021 阅读 · 1 评论 -
IOS APP内后台音乐播放
写在开头最近做了IOS音频、音乐后台播放相关的需求,这里主要总结一下支持后台播放以及远程控制的一些用法,在这个过程中也遇到了一些问题,会在另一个博客里面进行总结。一、后台权限申请1、在Info.plist文件中里设置选项Required background modes ,然后添加item0:App plays audio or streams audio/video usin...原创 2019-05-01 10:36:26 · 6164 阅读 · 0 评论 -
关于MD5
写在前面最近把一个在处理关于Md5的一些代码对了NSData(Data)加密处理,然后进行校验在这里做一个总结。开始头文件必须要引入#import <CommonCrypto/CommonDigest.h>import CommonCrypto1、NSData MD51.1、OC@implementation NSData (MD5)- (NSString ...原创 2019-09-06 17:08:01 · 513 阅读 · 0 评论