![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios
碧落&凡尘
欢迎大家一起交流探讨!
展开
-
iOS中#pragma的使用
在开发过程中我们可以在方法前面加上下面代码来提供类似方法注释功能,该功能在提供注释的同时也方便在代码区上方的导航条中快速定位自己的方法#pragma mark - Message然后在代码过程中如果有一些想要忽略的警告(注意不是致命错误!)可以在文件顶端加入#pragma clang diagnostic ignored "-W警告名"例如针对代码中有没有使用过的变量系统会提示Unused v原创 2016-12-11 11:03:10 · 1865 阅读 · 1 评论 -
dispatch_barrier_async和dispatch_barrier_sync的使用
首先,barrier的直译是障碍,栅栏和分界线的意思!所以可以很直观的想到这个使用与在GCD中设置障碍用的!例如,要之前三部分任务,第二部分要在第一部分之后才执行,第三部分要在第二部分之后才执行,所以可以把第二部分视作一个障碍!当然也可以使用dispatch_group来实现,但是这里使用barrier更简单直观!直接上代码dispatch_queue_t queue = disp原创 2017-03-10 12:51:44 · 5191 阅读 · 0 评论 -
iOS 消息转发相关
ios消息转发机制是一种很神奇的机制,我们可以用这种机制实现多继承的效果!原创 2016-12-03 16:44:20 · 561 阅读 · 0 评论 -
OC中单例禁用init方法
稍微百度了一下,首页上的答案有两种------他山之玉一种是在init方法里抛出异常- (instancetype)init{ [self doesNotRecognizeSelector:_cmd]; return nil;}然后构建一个私有的init方法,在里面调用[super init],然后单例实现中就调用私有的init方法!还有一种是直接在init中返回原创 2017-03-21 17:21:16 · 2140 阅读 · 0 评论 -
RSA公私钥加密算法的实现过程
1.实现原理1.随意选择两个大的质数p和q,p不等于q,计算N=pq。2.根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)3.选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)4.用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))5.将p和q的记录销毁。e是公钥,d是私钥。d是秘密的,而N是公众都知道的。Alice将她原创 2017-03-27 14:29:36 · 3994 阅读 · 0 评论 -
UICollectionView的瀑布流实现
UICollectionView机制和UITableView类似,不同的是UICollectionView有一个专门用于布局的类UICollectionViewFlowLayout类.通过自定义这个类,可以实现自定义布局.所谓的瀑布流布局,就是值视图中的网格宽度一致,而高度不同,类似于下图所示具体的实现可以通过一个继承自UICollectionViewFlowLayout或者UIC原创 2017-04-26 17:39:05 · 444 阅读 · 0 评论 -
Mac下Apache2本地域名配置相关
最近在学前端,牵扯到了跨域名通信的问题,然而教程上只有windows的配置域名过程,在网上找了找大部分都是windows或者Linus的。由是折腾良久。如果指向看过程可以直接跳到下面“正式开始部分”首先,这是本地域名配置,比如针对Apache服务器下有两个文件,通过浏览器访问是 127.0.0.1/..../a,127.0.0.1/----/b,这时可以针对这两个文件分别单独设置一个域名原创 2017-05-21 16:45:17 · 3852 阅读 · 0 评论 -
iOS基于CoreBlutooth的蓝牙开发
首先如同网络一般,蓝牙也类似的可以分服务端和客户端,CoreBlutooth中有两个角色,一个是Peripheral,相当于服务器端,也就是我们打开手机蓝牙搜索时找到的各个设备;一个是Central,相当于客户端,也就是我们使用的手机,这两个角色和一般的手机使用主权引起的角色意识有点冲突。蓝牙通信过程中有几个部分,一个是Service,即服务器提供的服务,一个服务端可能有一个或者多个Servi原创 2017-07-10 14:58:56 · 756 阅读 · 0 评论 -
XCode编译报错 Command /usr/bin/codesign failed with exit code 1
如果提示了其他的信息,比如文件路径或者其他信息可能是程序问题或者框架导入问题。但是今天碰到的情况是没有其他错误提示,只有单独一行Command /usr/bin/codesign failed with exit code 1,然后在StackOverflow上找到了解决办法原文链接主要意思就是清除添加资源的文件属性,在添加图片或者音乐文件到项目包中的时候文件是带有属性的,所以可以通过原创 2017-06-30 12:05:55 · 744 阅读 · 0 评论 -
ios开发CoreText框架流程图
使用CoreText框架构建带有图片信息的富文本流程图原创 2017-07-11 20:26:37 · 401 阅读 · 0 评论 -
iOS常用系统宏定义
__IPHONE_10_2 系统版本号的宏,这表示手机的系统是10.2的! 实际上的值为 10200,其他版本依次类推.__IPHONE_OS_VERSION_MIN_REQUIRED 当前应用支持的最小的版本号NS_UNAVAILABLE 禁止使用的意思,一般是用于方法后面,比如禁止调用init方法可以- (instancetype)init NS_UNAVAILABLE原创 2017-03-07 23:10:33 · 1132 阅读 · 0 评论 -
CoreData编译报错
报错原因1. .xcdatamodeld文件在编译时会自己生成相关文件2.使用Editor里的Create ManagedObject SubClass又会重新添加同样的文件所以有两种解决办法:1.在Build Phase中的Compile Source中删除手动生成的.m文件2.在.xcdatamodeld文件中右侧的Class中找到Codegen设置为Manual/None原创 2017-07-31 16:36:08 · 540 阅读 · 0 评论 -
ios10.3之CoreData的详细教程
首先如果要使用CoreData可以选择在初创项目时选择添加coredata,也可以选择自己添加coredata文件然后可以找到.xcdatamodeld文件,开始添加模型,在我的demo中添加了Person和Card两个模型,详情如下Person中添加了两个属性name和age,类型分别为String和int32_t,card中也添加了两个属性color和size,类型均为NSObject原创 2017-07-31 22:07:32 · 7555 阅读 · 1 评论 -
ios相关的一些知识
1.copy关键字copy关键字说明该属性在赋值时是将赋予的值copy一份,然后将复制的值赋给该属性,使用该关键字修饰的属性所属的类必须遵循NSCopying或者NSMutableCopying协议,在类中需要有copyWithZone(mutableCopyWithZone)方法的实现,如果一个类未遵循该协议,该类实例化的对象调用copy方法或者mutableCopy的话,编译可以通过,但是原创 2017-07-30 01:10:30 · 458 阅读 · 0 评论 -
MAC下apache配置出错,不能加载php模块
昨天本来想重新练习一下socket,就试着往自己搭建的apache上发消息,结果死活通不过,尝试着apachectl restart也没用,打开浏览器才发现自己的本地服务器已经挂了。然后后来就一遍遍的照着网上的教程配,却还是没有连接上,浏览器上一直显示着it works。后来看得烦了我就把/Webserver/Library/里面那个提示页面给改了,结果发现还是那样,这是才反应过来浏览器是原创 2017-11-15 10:20:40 · 3685 阅读 · 0 评论 -
github的傻瓜式使用
使用环境MACgithub是用于代码托管的平台,官网https://github.com.能够实现类似Xcode的Source Control里的代码保存,分枝等功能!因为以前都是个人开发,所以都是直接使用的source control,而且github分为付费($7/month,一个月7美元)和免费的,前者拥有创建私人仓库的权利,而我没有付费,又不想创建公共仓库,所以一直不想使用github原创 2017-02-27 15:47:53 · 514 阅读 · 0 评论 -
dispatch_semaphore_t 信号量相关知识
dispatch_semaphore_t是GCD系列的产物,semaphore译词有信号量一说!与之相关的有三个函数dispatch_semaphore_t dispatch_semaphore_create(long value);long dispatch_semaphore_wait(dispatch_semaphore_t dsema, dispatch_time_t timeout原创 2017-03-07 03:54:30 · 393 阅读 · 0 评论 -
AFNetworking的相关
AFNetworking默认的使用方法是首先获取AFHTTPSessionManager的单例managerAFHTTPSessionManager继承自AFURLSessionManager,内部核心属性 requestSerializer和responseSerializer,用于对请求的参数进行序列化,将请求的参数序列化成请求,将响应解析成数据(json或者data)通过manage原创 2017-03-12 15:00:39 · 377 阅读 · 0 评论 -
runtime 简单应用
runtime简单应用!原创 2016-11-19 14:44:32 · 334 阅读 · 0 评论 -
多线程pthread
多线程pthread原创 2016-11-19 14:05:20 · 205 阅读 · 0 评论 -
ios消息发送
首先,在类中导入头文件#import 然后就可以使用objc_msgSend来发送消息给某个对象!但是正常的项目使用这个函数会报错!我们需要在项目里的Target的buildSetting里面搜索send将Enable Strict Checking of objc_msgSend Calls设置为NO就可以了!默认为YES;如果为YES,代码录入的时候默认是不能传参的,objc_原创 2016-12-04 13:24:47 · 506 阅读 · 0 评论 -
Mac安装MySql报错
原来也安装过一次,但是失败了!所以这次找来了新的安装包,却又不知道怎么删除,在网上找的教程,也看不懂命令行,只能跟着乱敲!,结果重复安装的时候提示报错了!好不容易安装完成了,设置界面却不能启动服务,按照网上找的资料,终端启动报错:error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'原创 2016-12-07 18:52:55 · 508 阅读 · 0 评论 -
xmpp的openfire+spark安装过程
首先要使用openfire需要mysql数据库,数据库安装的各种教程可以百度!最好是自己下dmg安装包文件压缩包操作难度有点大,目前操作不来!然后因为我是从网上下的教程,里面自带了openfire3.9.3,所以是先安装的3.9.3(openfire不支持版本回退!),安装过程中也就想傻瓜式的下一步,其中有两个注意点,一个是域名,貌似可以任意填,一说不能是自己机器名!我也没试过!然后是原创 2016-12-08 13:45:31 · 1809 阅读 · 1 评论 -
ios客户端密码安全处理
目前了解到的几种官方支持的有MD5,SHA(1,256,512),和HMAC,使用时请导入#import 然后通常的做法是使用MD5- (NSString *)md5String { const char *str = self.UTF8String; unsigned char buffer[CC_MD5_DIGEST_LENGTH]; CC_MD5(str,原创 2016-12-09 19:15:36 · 558 阅读 · 0 评论 -
iOS中__attribute__的使用
本文章系阅览csdn作者xumugui007博客后的总结目前总结的__attribute__有__attribute__((deprecated($message)))一般用在方法申明后面,私有方法更在方法名最后,用于提示这个方法已经被移除,或者不推荐使用例如#define XMPP_DEPRECATED($message) __attribute__((deprecated($mes原创 2016-12-16 18:31:59 · 1850 阅读 · 0 评论 -
单链表的实现
最近在看XMPP框架,里面的xml底层是用链表实现的,其实苹果官方的xml框架也是利用链表实现的!所以这证明了,对于苹果开发者来说,了解数据结构还是非常有益处的!所以个人翻阅了下数据结构一书!由于基础有限,所以有些地方可能会有些纰漏!下面是个人经验所得,如果错误,欢迎指正!首先链表主要是通过结构体来实现的,通过将结构体内部成员设计为结构体本身的指针类型来实现传递链的效果!例如:原创 2017-01-05 00:20:12 · 348 阅读 · 0 评论 -
iOS怎么制作PDF图片和网络抓取图片
注意点:注意绘制的逻辑和顺序,切记,千万要注意创建的CF资源必须手动释放,否则,系统可能会认为你有可能将会继续使用该资源,而不会将它绘制到指定文件,特别是PDF上下文,之前我一直没有出来效果,就是因为没有释放!如果发现绘制的结果是图片大小为0KB,格式损坏,如果主要逻辑对了的话,建议查看资源释放是否正确! NSString *newStr = [NSString string原创 2016-12-20 13:11:16 · 1102 阅读 · 0 评论 -
如何实现超出父视图的button以及响应链相关内容
超出父视图的button,可以将button的frame按照(0,0)点设置好,然后更新center,或者直接将button设置初始坐标在超出视图的位置,这很简单!难点在于,如何让超出父视图的button部分响应我们的点击事件!首先需要普及的是点击事件的响应链!应用程序在接收到用户的点击事件后,UIKit会将屏幕接收到的事件(UIEvent)放在一个事件队列里,然后UIApplicat原创 2017-01-14 23:53:35 · 1130 阅读 · 0 评论 -
iOS多态:初始化时效果出不来?可能是因为覆盖了父类的同名方法
首先说下多态,最直观的理解就是OC种的数组!分为两种,一种是NSArray,一种是NSMutableArray,前者是后者的父类!相信大家在实际写代码过程中也有类似的发现,NSArray可以接收NSMutableArray产生的对象,而反过来不可以,这就是多态!也就是说多态就是父类指针可以指向子类指针!然后今天在码完代码开始测试时,发现button的titleColor效果一直出不来,原创 2017-01-18 15:31:19 · 726 阅读 · 0 评论 -
iOS10自定义tabBar出错
今天在自定义tabBar的时候,采用了下面的形式按钮A和C是同样的功能,B按钮是另一个不同的功能,比如modal一个控制器之类的..然后采取的方式是A和C采用自定义的Button,B采用系统的Button,然后在自定义的tabBar中进行了layoutsubviews中进行了重新布局!/**题外话一开始我是想重新用一个View添加到tabBarContr原创 2017-01-20 16:11:43 · 1009 阅读 · 0 评论 -
iOS发送邮件和短信
类:MFMailComposeViewController这个类提供了一个标准的界面来管理编辑和发送邮件的!,可以使用这个控制器在你的App里展示一个标准邮件信息界面,在展示界面之前,应该给subject(标题),recipients(接收邮件的人),和attachment(邮件的附件)复制,在展示邮件界面后,用户可以在发送邮件前继续编辑你提供的值.在展示邮件界面前,一原创 2017-02-24 17:14:36 · 1390 阅读 · 0 评论 -
TableViewCell内含textField的复用
最近经历了一次技术面试,面试过程是让模仿苹果的电话App中的数据库存储和页面布局部分。因为自己的意识偏差,着重于项目整体的完善,所以最终时间分配不合理,最后只搭了个基本框架,页面布局部分倒是比较满意,但是数据库部分FMDB的使用留下了一大堆的BUG。而途中的一个问题直到今天才发现,那就是tableView的cell中如果含有UITextfield,那么在编辑之后就会出现重用问题。而且在原创 2017-11-20 17:39:36 · 1719 阅读 · 0 评论