
ios
文章平均质量分 69
当白
大人不华,君子务实
展开
-
【swift】swift quick start
swift的快速开始原创 2023-02-22 16:45:29 · 580 阅读 · 0 评论 -
【ios】星星评分 : 可以点击评分,也可以只是展示(git可下载)
【ios】写了一个星星评分的控件,可以操作评分,也可以只是展示,欢迎使用以下为使用示例(将QCStar文件夹复制到项目中,即可使用) #import "ViewController.h" #import "QCStar.h" @interface ViewController () @property(nonatomic,strong) QCStar *...原创 2018-08-15 13:35:03 · 1313 阅读 · 0 评论 -
【ios】非对称加密RSA(git可下载)
非堆成加密RSA这个demo可以说写的比较早了应该是16年做的前段时间写AES的时候想起了这个东西然后就把它拿出来放在了这里希望对你有帮助demo放下,如果对你有帮助,请给starPOST:https://github.com/canwhite/QCRSATest ...原创 2018-08-07 15:19:40 · 245 阅读 · 0 评论 -
【ios】对称加密AES(git可下载)
前段时间公司需要然后自己就搞了一个里边有很详细的注释当然如果想进一步了解,还是自己再看一下AES相关信息话不多说:POST:https://github.com/canwhite/QCAESTest如有帮助,请给star...原创 2018-08-07 15:15:10 · 200 阅读 · 0 评论 -
【ios】Protobuf的使用(分步骤详细解析)
(1)Protobuf是什么?Protobuf 即 google protocol buffer 是一种数据封装格式协议,是google推出的一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。支持C++、Python、Java三种语言。 (2)为什么要使用Protobuf?在不同平台通信的时候,首先需要将对象进行序列化。iOS平台上我们常...原创 2018-07-18 15:30:30 · 7757 阅读 · 3 评论 -
【ios】MMKV demo
update:最近微信已经把自己的MMKV发布了,使用更简单,更新一下,以下为中文文档POST:https://github.com/Tencent/MMKV/blob/master/readme_cn.md用微信的官方文档自己安装测试了以下,我是通过ios静态库的方式加载的,但是关于c++有问题,所以: Other Linker Flags 除了添加 -all_load 和 -Ob...原创 2018-07-18 11:32:26 · 2894 阅读 · 0 评论 -
【ios】跳转到指定页面
返回到root就不多说了主要写一下返回到指定VCfor (UIViewController *controller in self.navigationController.viewControllers) { //如果包含,强转赋值返回 if ([controller isKindOfClass:[VisitorInvitationVi...原创 2018-07-23 17:10:08 · 1307 阅读 · 0 评论 -
ios 比较时间(非时间戳)
//比对开始时间和结束时间NSDateFormatter *formatter=[[NSDateFormatter alloc]init];[formatter setDateFormat:@"yyyy-MM-dd"]; NSDate *sDate = [formatter dateFromString:self.startDateStr];NSDate *eDate = [format...原创 2018-06-27 09:12:44 · 1032 阅读 · 0 评论 -
ios之函数式编程思想 :流水线 (git可下载)
函数式编程就像流水线一样,一顺顺的把问题解决完,从一个起点开始,一个个的调用函数,因为上一个函数有返回值是工具类本身,所以一个函数执行完之后,可以用上一个函数继续调用,有点链式思维在里面。就像经过一个传送,一个电视机就制造好了。调用时候的样子: QCCalculate * cal = [QCCalculate new]; BOOL is_equal = [[[cal calculate...原创 2018-06-02 13:54:27 · 568 阅读 · 0 评论 -
ios之响应式编程思想 :蝴蝶效应 (git可下载)
昨天写了链式编程思想今天把响应式编程思想补上主要应用是model里边的数据加上监听一旦值发生变化后就让UI作出响应,改变界面git地址:https://github.com/canwhite/QCReactiveThinkTest...原创 2018-06-02 10:31:34 · 370 阅读 · 0 评论 -
ios之链式编程思想 : 贪吃蛇(git可下载)
首先我们了解一下单向链表以一环为起点,添上一环之后以下一环为起点,依次往下加,链式编程思维即是以此为起点至于实现,则是利用了很多block粘点代码,详细的demo中有,可以自己看,注释很清楚//加法-(QCCalcuTool *(^)(int))add{ //返回值的实现,参数是加的参数值 return ^ QCCalcuTool * (int value){ ...原创 2018-06-01 14:52:15 · 253 阅读 · 0 评论 -
ios之MVVM架构:一个靠谱的MVVM架构Demo(git可下载)
之前介绍了MVP主要是通过协议,在P和V之间做操作今天说MVVMMVVM实际上说和MVP差不了太多,但是整体写下来代码量好像少了很多,主要是我用了RAC在ViewModel中通过RAC拿到请求来的数据,当然也可以在这里进行数据解析,得到的结果传给ViewController就可以了git地址:https://github.com/canwhite/QCMVVMTest...原创 2018-06-01 10:58:43 · 5135 阅读 · 0 评论 -
ios之MVP架构:一个靠谱的MVP架构Demo(git可下载)
之前mvc、mvvm都来过,最后回归了mvc今天看安卓的时候,看到mvp,于是想到ios研究了一下,自己写了一个万变不离其宗,mvc是骨架,mvp是一种延伸,不过感觉在有些场景下,mvp会好用很多git地址:https://github.com/canwhite/QCMVPTest欢迎使用,给星...原创 2018-05-31 15:59:46 · 3055 阅读 · 0 评论 -
ios中存在真正意义上的深拷贝吗??
pre:刚发现一个问题,对于数组来说,无论是可变数组还是不可变数组,都不存在完全意义上的深拷贝 不可变数组直接copy的话相当于赋值,是个引用,地址没变,不可变数组mutableCopy的话是个浅copy,只copy了对象,数组元素地址不变。 可变数组无论是copy还是mutableCopy,都是只拷贝一个对象,数组元素地址指向原来地址,只有对象地址不一样有一种说法是:io...原创 2018-08-16 10:26:52 · 242 阅读 · 0 评论 -
【ios】自定义弹出框:极简纯原生(git可下载)
写了一个纯原生的自定义弹出框,只需要将需要的方法复制进去,很简单,自定义内容根据自己需要往view上写就可以,最后点击背景图移走弹出视图,不需要跳转其他页面,你在上边放一个tableView都无所谓,代码一百多行,本身可以放在一个方法里的,但是需要pod bk和sdautolayout,想着方便一些用户使用,就做了一个原生的在VC中放入这几个方法:1.颜色:也可以放在宏定义文件中全局可用...原创 2018-08-20 10:52:55 · 1677 阅读 · 0 评论 -
【ios】可多选的列表弹出框(附源码)
取消的时候会把数组清空,点击多选的时候会实时的往数组中添加相应元素使用方法很简单,将下边的文件放入项目中按照示例中的使用方法使用就可以了取消用的是block,实时选中没有使用原生的多选,写的是协议喜欢的给个star:POST:https://github.com/canwhite/QCMultiSelectPopView另附一个当初写的单选的列表弹出框:PO...原创 2018-12-12 10:51:44 · 1795 阅读 · 0 评论 -
【ios】weak-strong dance
一、weak-stong dance简介__weak typeof(self) weakSelf = self;self.handler = ^{ typeof(weakSelf) strongSelf = weakSelf; NSLog(@"Self is %@", strongSelf);};__weak 修饰的变量,变量不持有对...原创 2018-12-12 10:20:02 · 397 阅读 · 0 评论 -
【ios】带分区头的九宫格模型(附源码)
【pre】布局用的是SDAutoLayout,当然也可以自己调整为原生布局 一、注册表头 [_collectionView registerClass:[EnvironmentSupervisionCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSecti...原创 2018-12-10 15:19:23 · 434 阅读 · 0 评论 -
【ios】表单验证工具
新建一个NSObject类,起一个工具类的名字,我的是QCTools然后把下边代码分 .h .m 文件粘进去,结束本表单工具主要包括字符串为空判断 判断是否为手机号 判断时候为身份证号 判断是否为邮箱 判断是否为银行卡号 按指定分隔符拆分字符串 按指定分隔符拼接字符串.h文件中定义类方法:/*判断字符串是否为空 */+(BOOL) isBlankS...原创 2018-12-04 14:54:12 · 378 阅读 · 0 评论 -
【ios】为什么要在Other Linker Flags添加Flag (eg:-ObjC、-lc++等)?
一、为什么要在Other Linker Flags添加flag项目开发中,都会使用一些第三方的静态库,在导入这些第三方类库的时候,其开发文档都会有注明在Build Settings----->Linking------>Other Liker Fliags中添加-ObjC或-all_load或-force_load等。如果不这样做,运行就会报错从而导致闪退,报错是因为se...原创 2018-11-15 10:39:59 · 2366 阅读 · 0 评论 -
【ios】解决Cocoapods贼慢问题
做为一个iOS开发者,时不时就要与一些好用的框架或者库打交道,而且大多数还是国外的地址,访问相当慢,所以也就引发了一系列贼慢的问题,该篇文章就来好好总结下解决方案一、更换gem源// 查看现有的源gem source -l 我之前换过淘宝的源,在这里就会显示【 http://ruby.taobao.org/ 】*** CURRENT SOURCES ***...转载 2018-11-13 15:56:27 · 1302 阅读 · 0 评论 -
【ios】App Store 隐私政策网址(URL)
本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本...原创 2018-11-02 17:26:13 · 2595 阅读 · 1 评论 -
【ios】“图像不能包含alpha通道或透明度”的简单解决办法
上传appstore完善app信息的时候经常会遇到这个问题一个简单的解决办法就是,用mac预览打开图片,然后选择文件=>导出,这时候把alpha选项勾掉就可以了当然1024*1024的大小需要保证...原创 2018-11-02 13:15:04 · 2720 阅读 · 0 评论 -
【ios】SDAutoLayout 实现tableViewCell上字下图高度的自适应(附Demo)
用SDAutoLayout实现tableview 上字下图 cell高度的自适应,图可以是一张,或者多张,也可以是没有POST:https://github.com/canwhite/QCTableViewCellMin-height原创 2018-10-13 17:49:38 · 704 阅读 · 0 评论 -
【ios】一个cell两种样式:setNeedsLayout和layoutIfNeeded的关系(附Demo)
POST:https://github.com/canwhite/QCChangeCellTest可以先看下边的概念解析,再看demo里的cell部分,以下是概念解析(1)layoutSubviews继承于UIView的子类重写,进行布局更新,刷新视图,都要调用它。如果某个视图自身的bounds或者子视图的bounds发生改变,那么这个方法会在当前runloop结束的时候被调用。当前r...原创 2018-09-08 13:30:27 · 1441 阅读 · 0 评论 -
【ios】MRC相关: 内存管理(附Demo)
Pre:(1) 引用计数介绍ObjC中内存的管理是依赖对象引用计数器来进行的:在ObjC中每个对象内部都有一个与之对应的整数(retainCount),叫“引用计数器”,当一个对象在创建之后它的引用计数器为1,当调用这个对象的alloc、retain、new、copy方法之后引用计数器自动在原来的基础上加1(ObjC中调用一个对象的方法就是给这个对象发送一个消息),当调用这个对象的rele...原创 2018-09-04 13:25:24 · 385 阅读 · 0 评论 -
ios清除图片缓存
(1)pod或者导入三方SDWebImage (2)计算缓存大小以便在列表中显示 NSUInteger bytesCache = [[SDImageCache sharedImageCache] getSize]; //换算成 MB (注意iOS中的字节之间的换算是1000不是1024) float MBCache = bytesCache/10...原创 2018-05-15 13:49:11 · 1063 阅读 · 0 评论 -
ios代码优化 : 状态机
加状态机的目的是为了让代码的可读性更强,而不是单纯的以某个数字作为一种状态以数字代替状态没有详细的说明,又有谁能看得懂呢#import "xxx.h"typedef enum : NSUInteger { BtnTypeNewsSelected = 0, BtnTypeNocsSelect = 1, } Btn...原创 2018-05-21 14:07:47 · 736 阅读 · 0 评论 -
利用UIBezierPath给控件各个边角加上圆角
// 可用枚举// typedef NS_OPTIONS(NSUInteger, UIRectCorner) {// UIRectCornerTopLeft = 1 << 0,// UIRectCornerTopRight = 1 << 1,// UIRectCornerBottomLef...原创 2018-05-09 09:46:58 · 447 阅读 · 0 评论 -
ios常用三方的podfile
platform :ios, ‘8.0‘use_frameworks! target “WitServices” do pod 'AFNetworking', '~> 3.1.0’pod 'SDWebImage', '~>3.7'pod ‘Masonry’,’~> 1.0.1’pod 'MJRefresh', '~> 3.1.0’pod 'BlocksKit'原创 2017-10-13 09:13:07 · 357 阅读 · 0 评论 -
Button调整按钮中title和image的位置(包含工具类)ios
ViewController中使用实例 UIView *headerView = [[UIViewalloc]initWithFrame:CGRectMake(0,0,CKScreenW,50)]; headerView.backgroundColor= HexColor(0xceeffe); [se原创 2017-10-09 16:17:44 · 413 阅读 · 0 评论 -
ios常用知识总结(2) : 手机号判断、身份证号判断、字符串为空判断
(1)判断一下是否是手机号- (BOOL)isMobileNumber:(NSString*)mobileNum { // 电信号段:133/153/180/181/189/177 // 联通号段:130/131/132/155/156/185/186/145/176 // 移动号段:134/135/136/137/138/139/150/151/152/157/15...原创 2017-10-09 16:01:21 · 355 阅读 · 0 评论 -
数据请求工具类ios
WJRequstTool.h#import @interface WJRequstTool : NSObject/*** 成功回调** @param responseObject 请求结果* @param backCode 返回码*/typedef void (^successBlock)(id responseObject,转载 2017-10-09 15:56:12 · 330 阅读 · 0 评论 -
app版本更新全过程ios
1.工具类,主要是发送数据请求的,因为你需要从apple那请求到你当前的版本信息.htypedef void (^successBlock)(id responseObject, NSUInteger backCode);typedef void (^failureBlock)(NSError *error); + (void)POST:(NSString *)URLString ...原创 2017-10-09 15:46:29 · 1095 阅读 · 0 评论 -
SEL和IMP
SEL : 类成员方法的指针,但不同于C语言中的函数指针,函数指针直接保存了方法的地址,但SEL只是方法编号。IMP:一个函数指针,保存了方法的地址IMP和SEL关系每一个继承于NSObject的类都能自动获得runtime的支持。在这样的一个类中,有一个isa指针,指向该类定义的数据结构体,这个结构体是由编译器编译时为类创建的(需继承于NSObject).在这个结构体中有包括了指转载 2017-10-09 15:03:59 · 414 阅读 · 0 评论 -
block的使用极简版ios
1.VCOne.m#import "ViewController.h"#import "SecondViewController.h"@interface ViewController ()@property (nonatomic,strong) UILabel *label;@end@implementation ViewController原创 2017-10-09 15:08:14 · 259 阅读 · 0 评论 -
ios通知的一个简单实现
很少写协议,一般是在cell的按钮部分写一个协议,这部分主要讲通知,这是自己写的一个小例子,是实现了的1.VCOne#import "HomeViewController.h"#import "OneViewController.h"@interface HomeViewController ()@end@implementation HomeV原创 2017-10-09 15:12:52 · 539 阅读 · 0 评论 -
iPhone is busy: Preparing debugger support for iPhone
xcode9毛病很多导航栏隐藏问题还有新出现的这个问题,解决方法是关闭xcode重启手机原创 2017-11-21 09:48:04 · 675 阅读 · 0 评论 -
极光推送分类推送 最新别名设置ios
// 引入JPush功能所需头文件#import"JPUSHService.h"// iOS10注册APNs所需头文件#ifdef NSFoundationVersionNumber_iOS_9_x_Max#import#endif// 如果需要使用idfa功能所需要引入的头文件(可选)#import//登录原创 2017-11-21 13:52:43 · 5659 阅读 · 0 评论 -
ios中的AlertView
(1)@interface ViewController ()<UIAlertViewDelegate> (2)UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:nil message:nil ...原创 2018-04-19 14:13:55 · 346 阅读 · 0 评论