- 博客(89)
- 收藏
- 关注
转载 Swift - 访问控制(fileprivate,private,internal,public,open)
在Swift语言中,访问修饰符有五种,分别为fileprivate,private,internal,public和open。其中 fileprivate和open是Swift 3新添加的。由于过去 Swift对于访问权限的控制,不是基于类的,而是基于文件的。这样会有问题,所以Swift 3新增了两个修饰符对原来的private、public进行细分。一、各个修饰符区别1,pr
2017-05-23 11:57:12
424
原创 sql语句
SQL是一种结构化查询语言(或者说一种访问和操作数据库的语言)SQL不区分大小写,编写SQL规范,最好关键字都使用大写.表名最好加上t_前缀.1.DDL(数据定义语句)-- 创建表CREATE TABLE IF NOT EXISTS't_student'( 'id' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
2017-05-22 14:22:55
573
原创 ios xcode 支持https 遇到的问题
闲来无事把项目重构了一遍网络请求遇到一些麻烦,之前服务器https使用的是自建证书,项目使用的AFNetworking网络请求库,根据网上大多数博客的教程,请求数据没有问题后来,公司买了真的CA证书,也就是换掉了自建证书,按道理,AFNetworking是不需要任何配置的,但是发现线上环境一切正常,切换DNS到线下,发现报(-9801)的错误.经查阅:ios9里对TLS的版
2017-05-12 10:25:29
1357
转载 View Controller 的父子关系处理(Custom Container View Controller)
一个app首先有一个主window,初始化的时候需要给这个主window指定一个rootViewController,window会将显示相关的回调(viewWillAppear:, viewWillDisappear:, viewDidAppear:, or viewDidDisappear: )以及旋转相关的回调(willRotateToInterfaceOrientation:durat
2017-04-20 11:48:50
1072
原创 ios In-App Purchase 内购验证购买是沙盒环境还是真实环境
审核在两天内被苹果拒了两次,原因一样,都是在IPV6环境下,内购充值钻石,没有看到结果起初以为是 项目没适配ipv6环境,现在想到,在正式环境下,我的项目内购结束后的验证结果调的的是生产环境的url,并没有去回调沙箱环境的验证url在sandbox中验证receipt:https://sandbox.itunes.apple.com/verifyReceipt在生产环境中验
2017-03-22 10:14:56
12326
原创 使label字体上下偏移
需求:近日用到倒计时字体 :@"DBLCDTempBlack"大致看没啥问题,可是UI来找茬了,说字体向上偏移了一像素,需要向下挪回来;找了半天没发现label这样的功能,最后还是用 AttributedText 解决了用到属性 : NSBaselineOffsetAttributeName 可设置 上下偏移的距离(同时联想到,一个label如何设置大小不同,位置也不同
2017-03-14 15:42:10
5841
原创 富文本的一些属性
项目中需求首行顶格,其余行缩进,刚开始想用两个label实现,过于麻烦,查了一下NSMutableParagraphStyle相关的属性,轻轻松松搞定具体实现: CGSize size = [model.name boundingRectWithSize:CGSizeMake(MAXFLOAT, 20) options:NSStringDrawingUsesLineFragmen
2017-02-28 11:25:52
513
原创 cocoapods 安装使用指南
很长时间没有使用cocoapods添加新的函数库了,最近发现cocoapods升级到1.X版本了,之前的版本不能使用,所以借此机会温习再温习下它更新gemsudo gem update --system查看 gem版本gem —version安装cocoapods sudo gem install cocoapods查看cocoapods 版本
2017-01-20 10:52:50
410
转载 GCDAsyncSocket error.code=4
Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo=0xa8db6a0 {NSLocalizedDescription=Read operation timed out} scoket读取数据超时,当网络不怎么稳定通信方给发送消息的时候时不时的会冒一个这个错误,而且Socke
2017-01-19 15:56:42
2206
原创 git命令行学习小结
git reset 回退版本命令上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。git reset HEAD git reflog 记录每一次命令git diff 比较
2017-01-05 17:22:39
278
原创 IOS动画中的枚举UIViewAnimationOptions
UIViewAnimationOptionLayoutSubviews //提交动画的时候布局子控件,表示子控件将和父控件一同动画。UIViewAnimationOptionAllowUserInteraction //动画时允许用户交流,比如触摸UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画UIViewAnimationO
2016-12-22 18:06:33
455
原创 AFnetWorking的一个bug
项目发送json表单到服务器,接收不了,而用Postman可以。。原因是:AFnetWorking默认发送的参数数据结构是表单结构(form-data)格式,所以修改了其中一个方法(目前没发现其他解决方案) "AFURLRequestSerialization.m"文件中466行- (NSURLRequest *)requestBySerializingRequest:(N
2016-11-22 15:58:17
695
原创 ijkplayer需支持的系统库
AudioToolbox.frameworkAVFoundation.frameworkCoreGraphics.frameworkCoreMedia.frameworkCoreVideo.frameworklibbz2.tbdlibz.tbdMediaPlayer.frameworkMobileCoreServices.frameworkOpenGLES.fr
2016-10-19 10:28:32
315
原创 iOS8之后毛玻璃效果的实现
在iOS8.0之后,苹果新增了一个类UIVisualEffectView,通过这个类来实现毛玻璃效果,使用也是非常简单,几行代码搞定. UIVisualEffectView是一个抽象类,不能直接使用,需通过它下面的三个子类来实现(UIBlurEffect, UIVisualEffevt, UIVisualEffectView);子类UIBlurEffect只有一个类方法,用来快速创建一
2016-10-13 10:25:02
408
转载 iOS相册权限、相机权限、麦克风权限
相册权限iOS8之后加入了PhotoKit,使用需要 #import 权限类型typedef NS_ENUM(NSInteger, PHAuthorizationStatus) { PHAuthorizationStatusNotDetermined = 0, // 未询问用户是否授权 PHAuthorizationStatusRestricted, //
2016-10-13 09:25:28
1809
转载 framework制作及使用
1.新建framework项目2.加一些我们实用的类进来3.文件刚拉进来时如下图,只有APPBaseSDK.h是默认放在public中,我们还要把project中需要暴露给外面用的.h文件移到public中去4.然后设置编译模式,打开Xcode菜单Product--->Scheme--->Edit Scheme,改为release模式,因为最终打包是要用re
2016-08-29 17:26:21
578
转载 iOS库 .a与.framework区别
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?
2016-08-29 17:11:30
368
转载 Charles简记
Charles 4 新增的主要功能包括:支持 Http 2。支持 IPv6。 Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即
2016-08-13 10:30:20
306
转载 关于CAShapeLayer的一些实用案例和技巧
一、使用CAShapeLayer实现复杂的View的遮罩效果1.1、案例演示最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者。服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定义遮罩效果,就是本文要讲的内容。效果演示如下:第一张是一个View的遮罩效果,第二张是UIImageView的遮罩效果。演
2016-07-12 10:47:32
321
转载 iOS中respondsToSelector与conformsToProtocol的相关理解和使用
respondsToSelector相关的方法 :-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例-(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例-(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个select
2016-07-04 10:13:50
259
原创 处理缩放手势
先定义全局的oldTransform 等于要操作视图的TransformTransform@property(nonatomic,assign)CGAffineTransform oldTransform; _oldTransform = _imageView.transform; UIPinchGestureRecognizer *pinchGestureRecognizer =
2016-07-02 09:45:49
301
转载 iOS 支持 IPv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网络。 官方文档:https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transi
2016-06-15 15:56:06
4759
转载 如何更好地限制一个UITextField的输入长度
要限制一个UITextField的输入字数(参考链接),首先想到的应该是通过UITextFieldDelegate的代理方法来限制:- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSS
2016-06-03 11:14:09
302
转载 HTTPS 网络安全传输协议下的访问
HTTPS = HTTP(超文本传输协议) + SSL (安全连接层) HTTP 的安全版本.HTTPS 会专门建立一个 安全的数据传输通道来传输数据,外界拿不到任何数据,现阶段最安全的协议,目前在 http 模式下三大运营商发送的恶意广告泛滥,并且可以获得用户的个人信息,知乎有专门文章讲解如何到工信部投诉的内容。HTTPS 需要数字验证,目前很多大公司使用的数字验证都是默认支持的
2016-05-24 10:06:05
690
转载 UIScrollView的属性总结
属性作用CGPoint contentOffSet监控目前滚动的位置CGSize contentSize滚动范围的大小UIEdgeInsets contentInset视图在scrollView中的位置iddelegate设置协议BOOL directionalLockEna
2016-05-06 16:48:21
610
原创 视频背景
方案一 添加视频- (void)viewDidLoad { [super viewDidLoad]; // Load the video from the app bundle. NSURL *videoURL = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"mov"];
2016-04-19 09:54:05
620
原创 XMPP框架内的大致介绍
Authentication 授权,身份验证Categories 分类Core 核心Extensions 扩展Utilities 工具Vendor 第三方库 在Extensions中:CoreDataStorage coreDat
2016-04-18 17:57:23
646
转载 【IOS开发】 XMPP 简介和 XMPP 框架导入工程文件
翻译自XMPP GettingStart 介绍页原理介绍简介XMPP是一种基于标准通用标记语言的子集XML协议,具有超强的可拓展性。经过拓展的XMPP可以通过发送拓展的信息来处理用户需求。XMPP包含了正对服务端的软件协议,使之能够与另一个进行通话。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。目前由IETF国际标准组
2016-04-15 11:21:03
327
转载 FMDB 使用方法
ARC 和 MRC项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。使用在 FMDB 中有三个重要的类:FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。FMResultSet:用在 FMDatabase 中执行查询的结果的类。FMDatabaseQueue:在多线程下查询和更新数据库用到的类
2016-04-13 10:05:15
360
转载 OC与swift的相互调用
1、 swift调用oc将 Objective-C 导入 Swift 要在同一个 app target 中导入 Objective-C 文件供 Swift 使用,你需要依赖 Objective-C的桥接头文件(Objective-C bridging header)来暴露给 Swift。当你添加 Swift 文件到现有的 Objective-C 应用时,Xc
2016-04-05 11:21:21
780
转载 介绍GCDAsyncSocket
原文地址:https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAsyncSocketGCDAsyncSocket is a TCP library. It’s built atop Grand Central Dispatch.This page provides an introduction to the
2016-04-04 23:23:05
3264
转载 CocoaAsyncSocket使用
//GCDAsyncSocketDelegate执行代理对象#import #import "CocoaAsyncSocket.h"#import "Public.h"typedef void(^DidReadData)(NSDictionary* didReadData);/** * GCDAsyncSocketDelegate执行代理对象 */@interface NSO
2016-04-04 23:13:31
1501
转载 第三方CocoaAsyncSocket回调方法一览
CocoaAsyncSocket文件目录结构如下所示:可以看到整个文件分为GCD以及RunLoop两个部分。至于整个第三方框架的介绍这里就不多说了,网上有很多类似的资料,这里重点说几个需要注意的地方:(1)GCDAsyncSocket:Fully GCD based and Thread-Safe 这个类是线程安全的,利用这个对象我们可以方便的进行一些并发操作而不用担心
2016-04-04 23:06:54
660
转载 Socket使用大全
第一部分、概念的理解1、什么是Socket?Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息的接口,程序员使用这个接口提供的方法,发送与接收消息。Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息
2016-04-04 22:43:49
403
转载 UDID、UUID+keychain
首先,简单介绍一下UDID这个东西:UDID是Unique Device Identifier的简称,也就是唯一设备标识的意思。于iOS SDK中取得的方法是UIDevice的一个叫uniqueIdentifier的NSString*,由于这个ID字符串是基于设备的,应用开发人员可以通过获取此ID来用于记录区分设备。正是由于这个特性,可能会导致一些隐私等等相关的问题,Apple于iOS5中
2016-04-04 18:48:35
657
转载 Apple Pay线上支付的流程和app应用内接入的方法
目前的接入方式有两种,一是使用第三方提供商的SDK接入,另一种是让PassKit Framework直接与银联的接口对接,当然网络上还有一些自己使用PassKit PaymentRequest自己生成订单组织信息,直接与Apple对接的Demo,因为我们不可能每家银行跑去签约,大陆的银行也不会给我们开放特许,因此这种方式仅仅能用于测试ApplePay的功能和API尝鲜,并不适用于生产中。
2016-03-29 14:52:33
7724
1
转载 PS 快捷键大全
Windows和Mac的快捷键其实没什么不同,你只要把Ctrl换成Command,Alt换成Option即可。打开文件 - Command + O创建文档 - Command + N放大和缩小 -Command + 加号或减号。存储为Web格式- Command + Option+ Shift + S转换层 -转化的活性层发生时按Command + T自定义快捷键 -
2016-03-18 14:00:30
325
转载 iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
说明: 1)该文简短介绍在iOS开发中遍历字典、数组和集合的几种常见方式。 2)该文对应的代码可以在下面的地址获得:https://github.com/HanGangAndHanMeimei/Code 一、使用for循环 要遍历字典、数组或者是集合,for循环是最简单也用的比较多的方法,示例如下: 1 //普通的for循环遍历 2 -(void)iter
2016-03-17 18:08:21
288
转载 被误解的 MVC 和被神化的 MVVM
被误解的 MVCMVC 的历史MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了
2016-03-17 17:01:00
306
转载 iOS安全系列之二:HTTPS进阶
上一篇《iOS安全系列之一:HTTPS》只是介绍了比较偏应用的初级知识,对于想要深入了解HTTPS的同学来说是远远不够的,刚好本人最近工作上也遇到并解决了一些HTTPS相关的问题,以此为契机,决定写这篇更深入介绍HTTPS的文章。本文分为以下五节:其中第1节“中间人”是比较常见基础的知识,网上也可以找到相关的资料,如果对中间人攻击已经有了足够的了解,可以跳过。后面几节则是个人在iO
2016-03-02 10:13:30
1249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人