objective-c
文章平均质量分 58
SE-Valkyrie
不积跬步无以至千里,不积小流无以成江海。
展开
-
GitLab CI Runner集成
GitLab CI Runner集成在仓库根目录创建.gitlab-ci.yml 文件为该项目配置一个Runner一、.gitlab-ci.yml文件这个文件类似于脚本文件,应用格式:stages: - test - build# 所有 stage 之前的操作before_script: - cd demo - npm install# 单元测试test:...原创 2018-09-26 18:31:24 · 327 阅读 · 0 评论 -
解决Sourcetree 每次拉取提交都需要输入密码
Git config –global credential.helper osxkeychain如果不能执行,请先安装:$ git credential-osxkeychain# Test for the cred helper git: 'credential-osxkeychain' is not a git command. See 'git --help'.$ cu转载 2017-03-02 15:28:43 · 1702 阅读 · 0 评论 -
静态库拆包,压包
第一步,新建一个文件夹,用来存放目标静态库的拷贝,如libWeChatSDK.a。命令行:新建并切换到目标路径cd /Users/eric/desktop&&mkdir libWeChatSDK&&cd libWeChatSDK拷贝cp/Users/eric/desktop/libWeChatSDK.a./libWeChatSDK原创 2016-12-01 17:44:35 · 1289 阅读 · 0 评论 -
状态栏loading菊花显示
数据请求时自动出现。[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;[AFNetworkActivityIndicatorManager sharedManager].enabled = YES;原创 2016-11-30 15:33:50 · 715 阅读 · 0 评论 -
微信小程序开发总结
一、产品定位微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。二、小程序注册流程1.在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。2.选择“小程序”。3.填写未注册过公众平台、开放平台、企业号、未绑定个人号的邮箱。4.登录邮箱,查收激活邮件,点击激活链接。5.点击激活链原创 2016-11-16 11:31:07 · 1930 阅读 · 0 评论 -
使用react native开发ios心得杂记
1.文件顶部增加'use strict';这行代码是用于开启 Strict Mode,Strict mode的错误处理可以有所提高,JavaScript的一些语言缺陷也可以避免。简而言之就是,JavaScript在这种模式下工作地更好!2.定义样式var styles = React.StyleSheet.create({ text: { color: 'black',原创 2016-10-22 15:58:16 · 328 阅读 · 0 评论 -
二进制ASCII判断文件的类型
加载文件的时候,不希望加载pdf文件以外的格式,所以需要判断文件的类型,以下方式可以通过二进制文件的前两位ASCII来判断文件类型。这里我主要是为了pdf文件,但是代码可以通用,只需要在外面判断返回的string即可。原创 2016-09-02 14:32:00 · 1391 阅读 · 0 评论 -
@property属性详解
ARC 自动引用计数ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误。 同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存。 总是通过属性来管理实例变量(init/dealloc除外),在dealloc中释放所有属性。dealloc中会自动加入释放实例变量的代码,因此不必要手段增加释放实例变量的代码。不需要手动调用转载 2016-09-13 16:59:35 · 550 阅读 · 0 评论 -
mobSF漏洞扫描ipa包
一.mob文档首先我们打开mobSF的document。https://github.com/ajinabraham/Mobile-Security-Framework-MobSF/wiki/1.-Documentation这里面简要地说了一些环境和使用方法以及命令。我们按照要求先进行到我下面列举的地方。RequirementsPython 2.7 - http原创 2016-07-28 17:30:31 · 4631 阅读 · 1 评论 -
经历3轮百度面试的问题(iOS)
算法暂且不提,肯定有几道。iOS基础问题记录,很遗憾第三轮以为是hr面试掉以轻心了,并且经历4个多小时面试身心俱疲,自我感觉第三轮发挥很差,出来以后吹了吹风才发现,其实第三轮可以很轻松过去。若没拿到offer,以后再尝试吧。1.@property定义的变量,默认的修饰符是什么?2.GCD同步异步操作(应用场景:a->b->c顺序执行 ,async执行的先后顺序),同步阻塞.ns原创 2016-06-17 16:17:23 · 4717 阅读 · 2 评论 -
Block中对weakSelf进行strong处理
一、原因:在block中调用self会引起循环引用,但是在block中需要对weakSelf进行strong,保证代码在执行到block中,self不会被释放,当block执行完后,会自动释放该strongSelf。二、方法:在block外使用__weak __typeof(self)weakSelf =self;在block内使用_原创 2016-06-03 17:39:35 · 354 阅读 · 0 评论 -
runloop的mode作用是什么
一、runloop的modemodel 主要是用来指定事件在运行循环中的优先级的,分为:NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默认,空闲状态UITrackingRunLoopMode:ScrollView滑动时UIInitializationRunLoopMode:启动时NSRunLoop原创 2016-06-03 15:54:21 · 4474 阅读 · 0 评论 -
iOS打电话的方法
1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"1234567890"];[[UIApplication sharedApplication] openURL:[NSURL URLWithStrin原创 2016-06-03 15:12:26 · 863 阅读 · 0 评论 -
UITextView内容垂直居中
UITextView的居中属性,只能使文字顶部居中,不能使内容垂直居中,达不到UITextFiled的居中的效果;因此想要使 UITextVIew的内容垂直居中,可以通过KVC的方式监听text或者contentSize属性,进行偏移,其实很简单,不了解KVC的可以看看我的另外一篇关于kvc的文章,(kvc是一个非常好用的机制,以后肯定会用到,建议了解一下)代码如下://注册 监听转载 2016-06-01 15:51:38 · 1146 阅读 · 0 评论 -
iOS的事件传递响应链
iOS的事件传递响应链一、响应链响应链主要是对UIResponder及其子类事件传递的描述。UIViewController及UIView都是继承UIResponder的。而其中的UIView更是UIKIT框架下大部分控件的父类(几乎所有吧),所以能够响应事件的对象,实质上都相当于不断拦截转发至最后的可响应对象。如下图,可以看到UIRes原创 2016-05-31 18:03:29 · 530 阅读 · 0 评论 -
XXTEA加密算法OC代码
头文件#########################################################################################################################import @interface NIPXXTEAUtil : NSObject+(NSString *)encryptXXTE原创 2017-04-19 17:53:55 · 1187 阅读 · 0 评论 -
iOS中ScrollView的属性 和方法详解
概览 UIScrollView类为显示大于应用程序窗口的内容提供支持。它使得用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容。 UIScrollView是包括UITableView和UITextView在内的多个UIKit类的父类。 UIScrollView对象(或者简单地称为滚动视图)的中心思想是一个在它的内容视图中可调整的原点的视图。它裁剪它的内容至它本转载 2017-11-29 11:47:06 · 761 阅读 · 0 评论 -
使用pod引入ReactNative
首先,上自己创建的公有pod库: pod 'pod4ReactNative','~>0.55.4' 包的是RN 0.55.4版本的,iOS可以直接引用该pod库做开发,不再需要使用npm引入RN。git库:https://github.com/zramals/pod4ReactNative一、什么情况下使用pod库引入RN我们知道,官方的RN接入,虽然也是通过pod引入,但是...原创 2018-08-29 16:04:08 · 1316 阅读 · 0 评论 -
宜人贷-iOS客户端组件化介绍
文章简介:本文将从三个方面讲解我们组件化项目。第一部分,我们将介绍组件化的意义和业内组件化的进程;第二方面我们将具体介绍组件化所使用的技术,以及组件化过程中所面对的问题;而第三方面,我们会展示我们组件化的相关成果。个人介绍: 荆博 本科毕业于北京科技大学、研究生毕业北京工业大学计算机系 五年iOS开发经验 目前就职于宜人贷借款部门 第一部分:组件化意义...原创 2018-08-21 14:51:44 · 1045 阅读 · 0 评论 -
iOS组件化(三)-podspec使用详解
本文为博主原创文章,未经博主允许不得转载 上一次,我们尝试建立了自己的私有pod库,但是例子相对简单,这次我们详细的解析一下podspec的使用。一、官方文档地址:首先,官方文档最为官方: https://guides.cocoapods.org/syntax/podspec.html二、spec是什么spec描述了一个pod库的版本。它包括有关应从何处获取源、使用什么文件...原创 2018-08-03 15:35:17 · 25878 阅读 · 3 评论 -
iOS组件化(六)-AppDelegate优化
AppDelegate随着我们开发的深入,里面会产生很多的初始化、生命周期处理、推送、通知等方法,这些代码对我们组件化各个独立工程的开发环境搭建有很大的影响,例如:我们单独的业务线可能不需要对生命周期有处理,但是独立开发环境的AppDelegate如果定制化过大,后续可能会产生问题,所以需要一种统一的方式,减少各工程AppDelegate的差异。一、分模块加载AppDelegate方法基于...原创 2018-08-14 11:45:50 · 2516 阅读 · 0 评论 -
iOS组件化(五)-组件间调用
一、什么样的组件需要互相调用组件是有层级之分的,有上下的依赖关系(比如对业务而言的基础库),也有同级的互相接口调用关系(比如不同的上层业务相互提供能力)。在下上的依赖关系下,一般不牵扯调用,依赖即实现代码存在,不需要调用,直接用即可。而同级组件之间为了独立,需要解耦合,则不存在相互的依赖,那么想要其他组件提供能力,该怎么办呢?这就是我们要说的组件间的调用。一、组件间调用方式在开发一...原创 2018-08-06 18:42:32 · 2423 阅读 · 0 评论 -
iOS组件化(四)-代码解耦合
很多的组件化文章通常是教授技术上的经验,但是在实际组件化中,尤其一个老项目进行组件化改造时,最为耗时的却是业务代码的解耦合工作。这部分工作并不高端,由于很多的代码经过不断的改动,并且改动人员水平参差不齐,解耦代码更多的时候是体力活。那么怎么高效的完成这部分无聊的工作,进入下一个高逼格的技术点呢?一、基础代码这部分没什么好说的,前置工作,在前三讲中应该已经做出了我们自己的基础库,之后在解耦过...原创 2018-08-03 17:06:28 · 1234 阅读 · 1 评论 -
iOS组件化(二)-组件化前期工作
上一次我们讲了为什么组件化,这次我们就开始组件化的前期工作。一、Git库准备工作独立工程git库:存放管理我们独立工程代码spec git库:专门提交我们的私有库spec的git库二、新建工程既然我们要组件化,那么我们首先就是先有相关代码的独立工程,这点不管是基础库,还是未来的业务库,都是如此,区别只在于复杂程度和相关的功能组成上。 对于工程我们没有特殊的设置,默认空白...原创 2018-07-26 16:28:21 · 1787 阅读 · 6 评论 -
iOS组件化(一)-为何做组件化?
我们在做组件化之前,必须要弄清楚,我们为什么要组件化,如果没有明显的优点,或者解决我们的所需,我们没有必要组件化。在app迭代如此快速的情况下,耗费时间精力去做这么一件事情到底值不值得?一、组件化所解决的问题(1)、代码复用编程发展至今,面向对象语言的技术点发展,大多解决的是代码可复用问题,不管是封装、继承、多态,都是解决代码重用的不同解决方案,而组件化也是为了这个目的,将一个业务、一...原创 2018-07-26 14:22:15 · 2386 阅读 · 0 评论 -
pod库版本指定逻辑
下面是podfile指定版本号时的逻辑运算符:Besides no version, or a specific one, it is also possible touse logical operators:'> 0.1' Any version higher than 0.1 0.1以上 '>= 0.1' Version 0.1 and any...转载 2018-07-26 11:13:54 · 768 阅读 · 0 评论 -
Marcos宏定义
MarcosDemos#define PI 3.14#define log(x) printf("this is test: x = %d", x)#define log(x) printf("this is test: "#x" = %d", x)#define power(x) x*x#define RGBA(r, g, b, a) [UIColor colorWith...原创 2018-06-11 16:17:06 · 536 阅读 · 0 评论 -
iOS中的__bridge,__bridge_transfer和__bridge_retained
OC对象与CF对象的桥接一、Core Foundation框架与Foundation框架类型之间的桥接Core Foundation框架是C语言接口,而Foundation使用OC语言,在同时使用时,数据类型会有差异,我们可能需要OC与CF之间进行相互转化,这时我们就需要__bridge系列声明。1、OC转CF,__bridge、__bridge_retained声明假设一个类型转化的场景,例如:N原创 2018-02-01 11:55:46 · 376 阅读 · 0 评论 -
AVPlayer
AVPlayer一、定义必要的属性//AVplayer@property (strong, nonatomic)AVPlayer *player;//播放器@property (strong, nonatomic)AVPlayerItem *playerItem;//播放单元@property (strong, nonatomic)AVPlayerLayer *playerLayer;//播放原创 2018-01-31 19:44:31 · 1974 阅读 · 0 评论 -
#pragma clang diagnostic
使用格式大致如下:#pragma clang diagnostic push#pragma clang diagnostic ignored "-相关命令"//需要操作的代码#pragma clang diagnostic pop常见用法1.方法弃用告警#pragma clang diagnostic push #pragma clang diagnostic ignored "原创 2018-01-02 14:51:41 · 783 阅读 · 0 评论 -
iOS推送流程(APNS)
iOS推送流程(APNS)一、APNS(Apple Push Notification Service)苹果推送通知服务(APNs)是推送通知的网关,iPhone ipad 对于应用程序在后台运行有诸多限制,考虑到手机电池电量,应用不允许在后台进行过多的操作。因此,当用户切换到其他程序后,原先的程序无法保持运行状态。对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息。推原创 2017-11-27 16:32:38 · 11908 阅读 · 0 评论 -
iOS中的cookie使用
一、NSHTTPCookie自定义cookieNSHTTPCookie类,可以看到有如下几个方法://初始化- (nullable instancetype)initWithProperties:(NSDictionary *)properties;+ (nullable NSHTTPCookie *)cookieWithProperties:(NSDictionary *)pro原创 2016-05-31 17:01:33 · 729 阅读 · 0 评论 -
Method Swizzling基本用法
Method Swizzling通俗的讲就是交换两个selector的实现,通过这种方式,可以实现给方法hook的目的。使用Method Swizzling比较常见的方式就是通过category给常用类加入自己的hook方法,以达到复用的效果。比如我们想给UITableView的reloadData方法hook一个print的方法来追踪。则我们可以,#imp原创 2016-04-08 12:39:28 · 517 阅读 · 0 评论 -
9.2系统6s/6sp按钮button点击失灵
遇到问题:在iphone 6s 及6s plus上按钮出现不灵敏情况(9.2以后系统出现)。现象为:单击无方法,轻触拖拽有反应特别特别特别轻的点击是可以的开始以为是3D touch 的问题,后来发现是自定义UIButton的touch事件问题导致的,当你出现这种情况时,看看你的工程中是否引用了第三方控件UIButton+NMCategory,或者自定义的UI原创 2016-03-22 11:03:37 · 1577 阅读 · 0 评论 -
nil、NULL和NSNull
nil用来给对象赋值(oc的任何对象都属于id类型),NULL则给任何指正赋值,NULL和nil不能互换,nil用于类指针赋值(在oc中类是一个对象,是类的meta-class的实例),而NSNull则用于集合操作,虽然它们表示的都是空值,但使用场合完全不同,所以在编码时要严格按照变量类型来赋值,将正确的空值赋给正确的类型,使代码抑郁阅读和维护,也不易引起错误。如果定义了一个N原创 2015-09-15 15:04:10 · 299 阅读 · 0 评论 -
模拟器和真机运行都是屏幕上下有黑色的条
我碰到的情况是因为Launch Image设置问题,5s,系统7.0刚新建的工程Launch Image没有设置,需要这样点选,之后在相应的版本的Launch Image里添加相应尺寸的图片,就可以解决了(640 × 960 pixels 和640 × 1136 pixels)原创 2015-10-19 12:46:11 · 726 阅读 · 0 评论 -
UITextField监听文字输入事件
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];- (void) textFieldDidChange:(UITextField *) TextField{}原创 2015-11-03 12:04:22 · 350 阅读 · 0 评论 -
使用 xcodebuild 从 archive 导出 ipa
http://blog.reohou.com/how-to-export-ipa-from-archive-using-xcodebuild/转载 2015-09-29 15:53:28 · 541 阅读 · 0 评论 -
自定义导航栏去掉黑条
在自定义导航栏的时候,仔细看导航栏下面是会看到大概1像素的黑条,平时不注意并不会显得多显眼,但是当视图的颜色比较鲜艳,色差明显的时候,对比其他自定义没有黑条的视图,还是会被眼尖的人看出来。而这个黑条是导航栏的阴影效果,我们只要去掉这个阴影效果就可以了,当然也可以自己定制阴影效果,只是一幅图片而已。去除导航栏阴影效果[self.navigati原创 2015-08-17 17:10:53 · 761 阅读 · 0 评论 -
UIView之userInteractionEnabled属性介绍
属性作用 该属性值为布尔类型,如属性本身的名称所释,该属性决定UIView是否接受并响应用户的交互。 当值设置为NO后,UIView会忽略那些原本应该发生在其自身的诸如touch和keyboard等用户事件,并将这些事件从消息队列中移除出去。当值设置为YES后,这些用户事件会正常的派发至UIView本身(前提事件确实发生在该view上),UIView会按转载 2015-07-24 10:27:32 · 466 阅读 · 0 评论