IOS
文章平均质量分 53
ActiveC
这个作者很懒,什么都没留下…
展开
-
【问题记录】IOS发布证书过期导致的一些不常见的错误
问题描述:前端时候由于公司账号过期,然后续费。这两天打包出现了情况是,能打出包来,但是安装之后直接闪退,究其根本原因,描述证书过期。但是自己手动打包选的命名是过期后重新编辑的新证书,已经刷新了过期时间了,不存在过期问题,为什么打出来的包还是不能用呢?怀疑是XCode有缓存原因。错误1:上传商店报错如:is not signed using an Apple submission...原创 2020-02-15 15:44:45 · 522 阅读 · 0 评论 -
sqlcipher在IOS中的应用
在iOS开发过程中经常需要用到SQLite来存储数据,由于Apple的沙盒机制,我们App的数据存储在沙盒里面,一般情况下无法拿到数据,但是iOS管理软件iFunBox可以读取到应用程序沙盒里面的文件,因此为了保证数据的安全性,我们需要对数据库进行加密存储,然而,一般的加密存储手段有两种方式:1、对数据库中的每条数据进行加密。2、对数据库整个进行加密。 由于前者较为麻烦,储存...原创 2018-11-20 15:23:06 · 1633 阅读 · 0 评论 -
UITableViewCell图片高度自适应问题
对于一般UI设计,我们都把图片的写死,但是经常有种需求是需要我们自动根据图片宽高比实现图片的自动缩放功能。这里有多种办法可以解决这种问题,常见的问题处理方式有如下几种:1.后台返回图片的尺寸大小,然后前端根据图片size调整响应的高度,一般宽度定死。2.利用网络图片框架,获取下载到的网络图片实际大小,然后缓存起来,局部刷新cell,重新展示。鉴于之前项目上面也是有类似的需求,这里我...原创 2018-11-15 16:40:10 · 2560 阅读 · 0 评论 -
SSL在IOS中的应用
关于SSL的一些介绍,在上篇文章中《关于SSL的初步理解》有介绍过。下面主要介绍SSL在IOS下的应用.首先,由于SSL提供了一套数据加密通信的安全协议,其实现过程偏底层,且过程极其复杂。好在Github上为我们提供了一套开源的Socket框架CocoaAsyncSocket,基于TCP、UDP的功能封装也是相当的完整。一.目录结构实现方式也是基于GCD完成,CocoaAsyncS...原创 2018-11-05 21:25:56 · 1375 阅读 · 0 评论 -
SSL的初步理解
那么首先我们会问,什么是SSL?SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL...原创 2018-11-04 19:52:35 · 515 阅读 · 0 评论 -
IOS10之用户震动反馈
前段时间看了很多App有用到这个效果呢,比如点击tableViewCell的时候有时候会感觉手机有震动一下,还有3DTouch的时候也有类似的效果。于是就找到了这么个API。使用方式非常简单://震动反馈 /* typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) { UIImpactFeedbac...原创 2018-10-19 15:19:36 · 1152 阅读 · 0 评论 -
Effective Objective-C 2.0 观后感《一》
1.多用字面量语法,可读性较强2.尽量使用“向前申明”,而不是直接在头文件中导入。3.尽量少用预处理指令来定义变量,换做类型常量static const/ extern NSString * const str来替代;4.尽量使用枚举来定义状态,选项,状态码。可读性更强5.理解NS_Enum和NS_Options来定义枚举的差异,进不进行位运算,2的幂次方6.用switch处理...原创 2018-10-15 14:29:54 · 164 阅读 · 0 评论 -
Effective Object-C 2.0 观后管《二》
1.description和debugdescription区别2.尽量使用不可变对象,头文件中暴露readonly,实现文件中重写成readwrite.(串行配发队列)3.使用清晰而协调的命名方式4.为私有方法名加前缀,真阳很容易将其与公共方法区分开。不要单用一个下划线做私有方法的前缀,因为这种做法是预留给苹果自己用的。5.如果想让自己所写的对象具有拷贝功能,需要实现NSCopyi...原创 2018-10-15 14:28:12 · 122 阅读 · 0 评论 -
IOS description和debugDescription区别
相同点:两者都可以格式化输出对象。不同点:description可以直接通过NSLog格式化输出,而debugDescription需要通过控制台命令输出po;- (NSString *)description{ return [NSString stringWithFormat:@"<%@: %p,%@>",[self class],self,@{ ...原创 2018-10-08 14:47:23 · 749 阅读 · 0 评论 -
IOS p12文件转pem文件
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes原创 2018-12-04 13:54:07 · 276 阅读 · 0 评论 -
UIMenuController在IOS中的使用注意项
像QQ,微信那种长按消息然后弹出黑色的菜单栏,如下图所示:使用方法也相对较为简单,使用步骤如下:1、给目标视图添加长按点击事件 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPres...原创 2018-12-03 14:10:31 · 605 阅读 · 0 评论 -
IOS 往手机日历里增,删,查,该事件提醒
之前对这个块也不是很熟悉,然后在一个项目上使用过,所以这里就记下笔记,仅供参考。准备工作1.需要在工程中引入EventKit框架,#import <EventKit/EventKit.h>2.引入了此框架后,我们可以用来操作系统日历和提醒事项,这两个app都是IOS系统自带的功能。3.这里有个EKEventStore,相当于一个数据库身份。因为使用比较频繁,建议创建...原创 2018-12-06 17:11:49 · 1816 阅读 · 0 评论 -
IOS 解决WKWebView加载本地html资源文件异常处理
wkwebView加载本地资源时,有时候无法加载全css等资源文件。导致无线显示。需要做一下特殊处理: WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.userContentController = userContentController; config.pr...原创 2019-06-29 16:40:48 · 5152 阅读 · 2 评论 -
IOS $(SRCROOT)和$(PROJECT_DIR)区别
SRCROOT 代表了项目的相对路径,像这种就是相对路径了,应该使用SRCROOTPROJECT_DIR表示项目的绝对路径:向第一个test01那就该使用PROJECT_DIR,代表了项目最外面的文件夹...原创 2019-05-31 14:21:04 · 2659 阅读 · 0 评论 -
IOS 关于字符串的转码处理
在我们网络请求中经常会出现url中包含特殊字符串的情况,这个时候需要前端进行换吗处理,IOS中提供了下面一些可用的方法:1.url字符串中的中文处理 NSString *str3 = [@"123abc中文" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//IOS9之后过时 NSString *str3...原创 2019-01-24 17:21:29 · 1908 阅读 · 0 评论 -
一些有趣的操作分享
1.为我们App动态更换图标原创 2018-12-28 14:59:33 · 622 阅读 · 0 评论 -
ActionSheet在iPad上的适配兼容
兼容适配比较简单,只需要在prenset之前加一个系统校验:if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad) { if (alertController.popoverPresentationController != nil) { alertController.popoverPrese...原创 2018-12-17 11:10:30 · 755 阅读 · 0 评论 -
IOS 手机功能的跳转和私有API跳转
[[UIApplication sharedApplication] openURL:url];通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/...1、调用 电话phone[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://800888"]];拨打电话之后不跳转回app[...原创 2018-12-10 21:09:37 · 569 阅读 · 0 评论 -
你知道的不一样的KVC键值编码
像Ruby,JavaScript,Python等爱好者经常会嘲笑Objective-C那臃肿的语法。 实际上,一门语言是否优雅归结起来就是其怎么样能更好的避免循环。for,while语句是一种拖累;即使是快速枚举也一样。无论你怎么样使他们看起来更加的友好,循环依然是一个在自然语言中用非常简单方式描述所做事情的代码块。“给我这个列表里面所有员工的平均薪酬”,等等。。。double...翻译 2018-12-27 14:29:15 · 181 阅读 · 0 评论 -
IOS 判断是否是iPhoneX系列
- (BOOL)isIPhoneXSeries{ BOOL iPhoneXSeries = NO; if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) { return iPhoneXSeries; } if (@available(iOS 11....原创 2018-12-26 17:09:58 · 3787 阅读 · 0 评论 -
Objc_sendMsg消息传递
在IOS开发中我们会经常碰到类似下面这样的错误:分析其原因:大概是因为调用了某个类没有实现的方法,导致程序报错。然后,对象的方法走向是先去自身里面查找,如果有直接被调起,如果没有则去父类的方法中查找,沿着继承链一直往下查找,没找到就进入下面的消息转发流程了。然而深入去分析一波,则要牵扯到IOS的消息转发机制了。 下面简单的分析一下IOS中消息转发机制的流程走向,这里有一张图可以很...原创 2018-09-27 15:58:04 · 748 阅读 · 0 评论 -
获取最上层的ViewController-IOS
- (UIViewController *)topViewController{ UIViewController *vc = UIApplication.sharedApplication.keyWindow.rootViewController; while ( [vc isKindOfClass:[UINavigationController class]] || [vc...原创 2018-09-26 19:36:33 · 1548 阅读 · 0 评论 -
Builder Pattern在IOS中的实际应用
在说 Builder Pattern 之前,我们先来看看一个场景。假设我们要预定一个 iPhone 6,要 64G 的,金色的,用代码表述大概是这样:// PFX 是一个前缀,因为直接写 iPhone6 不符合类名大写的习惯,写成 IPhone6 更是怪异 ╮(╯▽╰)╭PFXiPhone6 *iphone = [[PFXiPhone6 alloc] init];iphone.stora...原创 2018-09-20 20:14:23 · 200 阅读 · 0 评论 -
关于GCD线程的理解
Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10.6 雪豹中首次推出,也可在 iOS 4 及以上版本使用。GCD详细介绍参考:GCD详解关于GCD的三种不同的线程队列理解分析:一.dispatch_get_m...原创 2018-05-04 17:10:41 · 294 阅读 · 0 评论 -
IOS 普通推送和静默推送
在IOS推送服务中,Apple提供了两种不同方式的推送形式,一种是在通知栏上面显示的推送;另一种则是不带消息提醒的推送,俗称“静默消息”。1.普通推送模板:ios10以前的模板:{ "aps":{ "alert":"内容", "badge":1, "sound":"default", "userinfo":{原创 2018-03-28 20:06:04 · 7278 阅读 · 0 评论 -
Swift初步探究-正确导入第三方库
随着Swift潮流声越来越近大,行业发展趋向于开源,逼着我们去学习更多知识。废话不多说,下面开始介绍如何以正确的姿势导入第三方库文件。 学习过Objective-C的同学肯定会知道,一般会有三种方式导入第三方库,分别是:cocoasPod管理工具,打包成framwork导入,直接导入原文件。然而,swift是苹果在oc基础上研发的一种新语言且开源,当然也继承之前的优良传统。同样的也有三种方式...原创 2018-04-10 14:20:56 · 5395 阅读 · 0 评论 -
自定义标签视图
1.自动适配屏幕宽度,自动换行。2.支持为每一个tag标签设置字体,文字颜色,背景色3.支持点击事件4.自动计算高度#import <UIKit/UIKit.h>@protocol WSTagListViewDelegate <NSObject>@optional- (void)WSTagListViewDidSelectedAtIndex:(NSInteger)index...原创 2018-02-28 16:02:33 · 272 阅读 · 0 评论 -
IOS 手机一些使用权限动态检测
#import <AVFoundation/AVFoundation.h>#import <Photos/Photos.h>#import <CoreLocation/CoreLocation.h>#import <AddressBook/AddressBook.h>#import <AddressBookUI/AddressBookU...原创 2018-02-28 14:12:46 · 905 阅读 · 0 评论 -
iOS安装CocoaPods详细过程
一、cocoapods概述CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。好处:1、在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。2、使用CocoaPo...原创 2018-02-27 14:33:59 · 138 阅读 · 0 评论 -
IOS中三大数据传递方式优缺点分析
1.Delegatedelegate俗称“代理”或“委托”,是IOS框架中使用最为普遍的方法,没有之一。常见代表有UIScrollView,UITableView等适用环境:UI事件响应,或者是频繁调用的情况,偏向于过程,各种状态的记录。优点:a.较为清晰的语法定义。b.可以很好的避免循环应用,导致内存泄漏问题。c.适用于多种(>=6)方法以上的回调方式缺点:a.较为重量级,代理的申明和实现...原创 2018-03-06 18:34:17 · 321 阅读 · 0 评论 -
RN发布组件到npm
1.git新建项目2.npm adduser3.npm publish中间有个报错,需要镜像切换npm config set registry https://registry.npmjs.org/ npm config set registry https://registry.npm.taobao.org 淘宝镜像错误2:在adduser的时候会报错,说明该用户已经存在,可以换...原创 2018-05-22 17:24:24 · 615 阅读 · 0 评论 -
IOS 本地图片加载
在iOS开发中生成一个UIImage对象的方法通常有两种1.利用imageNamed方法2.使用imageWithContentsOfFile下面介绍这两中方法的区别:imageNamed,从应用bundle中寻找图片加载到缓存中,适用于图片较小或经常使用。加载图片太大容易产生内存泄漏。imageWithContentsOfFile:NSString *filePath = [[...原创 2018-05-28 10:50:00 · 6118 阅读 · 0 评论 -
IOS 检测摇一摇动作的实现方式
目前所知道的检测摇一摇动作的实现方式大概有三种,分别如下:1. 事件模式:- motionBegan ,- motionEnded , - motionCancelled在需要检测的控制器里面实现上面三个方法,可以检测到对应的状态。需要准备工作由:如果App禁用的了摇一摇需要在控制器里面开启摇一摇检测:a.[[UIApplication sharedApplication] setApplic...原创 2018-06-22 16:14:59 · 5429 阅读 · 0 评论 -
断言(NSAssert)在IOS中的应用
NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并且可以自定义异常描述。查看源码我们可以看到NSAssert是这样定义的,NSAssert(condition,description),condition取相反值.比如判断一个值不能为空时,NSAssert(pa...原创 2018-09-20 20:03:33 · 330 阅读 · 0 评论 -
RN中JS与原生端相互通信方式解析-IOS
JavaScriptCore框架 是一个苹果在iOS7引入的框架,该框架让 Objective-C 和 JavaScript 代码直接的交互变得更加的简单方便。而JavaScriptCore是苹果Safari浏览器的JavaScript引擎,或许你听过Google的V8引擎,在WWDC上苹果演示了最新的Safari,据说JavaScript处理速度已经大大超越了Google的Chrome,这就...原创 2018-09-25 20:28:54 · 2211 阅读 · 0 评论 -
IOS 安全机制
iOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。系统操作占用大概240MB的存储器空间。目前所了解到的IOS的区安全机制主要有七大部分:1.更小的受攻击面首先基于IOS不开源框架的影响,降...原创 2018-08-01 10:40:11 · 1915 阅读 · 0 评论 -
IOS FaceID & TouchID识别
需要最低系统支持8.0以上,如果是FaceID至少IOS11以上.导入头文件#import <LocalAuthentication/LocalAuthentication.h>逻辑部分处理如下:- (void)fingerVerification{ if ([UIDevice currentDevice].systemVersion.floatValue...原创 2018-08-01 10:14:11 · 3008 阅读 · 0 评论 -
IOS 之 JavaScriptCore认识
JavaScriptCore是IOS7以后苹果为了解决JS和原生之间的交互问题 1.非WebView环境下 一般有两种方式解决JS -> OC1.OC主动调用JS-(void)OCCallJS{ self.context = [[JSContext alloc] init]; NSString *js = @"function add(a,b) {ret...原创 2018-07-27 14:36:11 · 515 阅读 · 0 评论 -
IOS图片处理的一些方式的性能差异
iOS的5种图片缩略技术以及性能探讨原创 2018-07-27 10:11:30 · 128 阅读 · 0 评论 -
在IOS环境下集成ReactNative页面
1. RN的环境集成还是得看RN官网,步骤写得非常详细。ReactNative中文网2.在这里还是重复一遍步骤,加深一下印象:开发环境准备首先按照环境搭建教程来安装React Native在iOS平台上所需的一切依赖软件(比如npm)。1.设置项目目录结构首先创建一个空文件夹(暂时叫“RN_Test”)用于存放RN项目,然后在里面创建一个ios文件夹来存放原生工程。2.安装...原创 2018-06-28 19:36:13 · 498 阅读 · 0 评论