
OC
yingBi2014
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS开发之SizeClass使用
一、什么是sizeclass以及它能干什么在xib和storyboard中进行布局使用autolayout能够适配不同尺寸的屏幕,但是对于横屏和ipad这种跟一般iPhone尺寸相差比较大的屏幕,只用autolayout很难一种布局适应所有尺寸。这就需要用到sizeclss对不同屏幕类别下的约束和控件进行调整。sizeclss主要是主要针对横竖屏和ipad的屏幕进行特殊约束处理的一种工具。...原创 2020-03-23 15:12:01 · 2052 阅读 · 0 评论 -
iOS13下获取的deviceToken格式变化的问题
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken在iOS13上,苹果回传的deviceToken格式发生了变化,如下图:这里需要判断下将token处理成统一格式,代码如下:- (NSString *)...原创 2019-12-09 14:28:50 · 2758 阅读 · 0 评论 -
Swift项目中使用OC混编--创建桥接文件和使用Cocoapods设置User Header Search Paths
> 如果项目是Swift项目,想引用OC写的类库时,需要创建桥接文件。 桥接文件创建有两种方法: 1、直接在swift项目中创建oc的类,会弹出提示没直接选择创建桥接文件,Xcode会自动帮你创建好并进行配置。 2、自己手动创建并配置,名字自己起, 然后进行配置,Target->Build Setting->Objective-C Bridging ...原创 2018-04-26 14:07:45 · 3033 阅读 · 0 评论 -
OC 使用static const extern 和#define声明常量
static–只作用在编译单元,即只在当前.m文件可见 const–不可变 extern–生成全局变量利用#define定义常量#define Time 3 有时候这样做很方便,但是这种定义方法,看不出类型信息并且值会被修改。用static和const来定义常量static NSString *const name = @”jim”; static表示只在当前.m文件可见,...原创 2018-06-06 13:18:59 · 1295 阅读 · 0 评论 -
iOS 关于NSDate的时区转换差值问题和转换字符串时间
1、标准时间也叫格林尼治时间,北京所在的东八区时间比标准时间快八个小时。 例如:标准时间为 2000年1月1日 00:00:00 对应的北京时间为2000年1月1日 08:00:00 2 、iOS系统中直接生成的时间都是格林尼治时间,比当前时间(北京时间)小八个小时。 通过Date.init()生成的时间为当前时区的时间所对应的格林尼治时间 通过UIDateP...原创 2018-06-13 12:09:23 · 1952 阅读 · 0 评论 -
Objective-C高级编程iOS和OS X多线程和内存管理(阅读笔记GCD篇)
1.1什么是GCDGrand Central Dispatch是异步执行任务的技术之一。将应用程序中的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务,这样就比以前的线程更有效。例子:dispatch_async(queue, ^{ /* 长时间处理 ...原创 2018-09-21 16:59:23 · 965 阅读 · 0 评论 -
iOS 百度地图更新sdk是剥离bitcode版本和坐标系偏移问题
123原创 2018-10-09 13:46:11 · 884 阅读 · 0 评论 -
iOS 使用objc_setAssociatedObject为分类增加属性-关联对象
使用分类可以为没有源码的类增加方法,但是一般不能增加属性。如果我们为分类添加属性的话,要手动实现所加属性的getter和setter方法,这里使用关联对象的方式完成set和get方法。我们首先了解@property的意思生成实例变量 _property生成 getter 方法property 生成 setter方法 - setProperty:如下,为一个分类增加一个名为name...原创 2018-10-10 16:15:22 · 2463 阅读 · 0 评论 -
iOS 添加透明罩时遮挡后面控件手势的问题
问题:要实现一个简单的夜间模式,简单的方法可以在KeyWindow上加一个半透明的view,但是这个view遮挡住了后面页面的手势了,需要处理一下。这就用到了事件的传递和响应者链。一、事件的传递和响应者链一个完整的点击过程包括两个过程,先找到能响应该点击事件的控件,然后通过响应者链响应事件。寻找响应控件是从父控件到子控件的自上而下的过程。一个点击事件的传递是从父控件往子控件传递的。从...原创 2018-10-26 12:01:12 · 2795 阅读 · 0 评论 -
iPhone各型号物理分辨率和逻辑分辨率
/** 逻辑分辨率pt 物理分辨率px iphone4 320x480 640x960 二倍 iphone5 320x568 640x1136 二倍 iphone6 375x667 750x1334 二倍 iphone6p ...原创 2018-11-02 17:01:26 · 4204 阅读 · 0 评论 -
iOS 解决打印中文时显示unicode的问题
打印字典时有如果里面有中文的话,有时候会打印成unicode,这时候给字典添加一个分类,重写description方法如下:- (NSString*)my_description{ NSString *desc = [self my_description]; desc = [NSString stringWithCString:[desc cStringUsingE...原创 2018-11-15 14:08:28 · 1682 阅读 · 0 评论 -
iOS 自定义弹出控制器弹出动画
自定义弹出控制器动画,分为底部弹出和中间弹出PCustomPresentVC利用系统默认动画PresentAnimationVC利用自定义动画关键类是转场动画管理类UIPresentationController...原创 2018-12-03 09:41:06 · 1643 阅读 · 0 评论 -
iOS新老推送代理方法的触发时机
先来说下iOS7到iOS10之间的情况,接收通知只有两个方法- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo- (void)application:(UIApplication *)application didReceiveRemoteN...原创 2019-05-28 13:10:59 · 2027 阅读 · 5 评论 -
OC中使用Swift混编引入头文件
上篇讲了Swift中使用OC,Swift中使用OC,这篇讲下OC中使用Swift类。 在OC中需要用到Swift代码的文件中引入#import “XXX-Swift.h”,XXX是你的工程名称。 特别注意 1、被使用的Swift的类必须是至少继承自NSObject的,不然OC识别不了这个类。 2、Swift中的属性和方法,要加上@objc标识,不然识别不了。代码如下,Swift中定义了...原创 2018-05-09 14:00:01 · 3134 阅读 · 0 评论 -
iOS 苹果开发者公司账号成员管理
这里针对的是公司类型的账号(非企业账号)。个人账号,公司账号和企业账号的区别 登录具有Agent权限的apple id,点击左侧的People ,在右侧点击Invite People ,可以选择邀请成为普通成员(Members)或者管理员(Admins),输入对方的apple id,点击邀请,对方邮箱会受到一个邀请邮件,按要求接受邀请后,对方的apple id就具有相应的权限。 ...原创 2018-04-14 10:28:36 · 8241 阅读 · 0 评论 -
iOS 苹果开发者账号--个人账号,公司账号和企业账号的区别
苹果开发者账号主要分为3类:个人(Individual)、组织(Organizations)(公司、企业)、教育机构(Educational Institutions)。组织又分为两大类:公司(Company)和企业(Enterprise)。这其中教育机构类的基本上都用不上,所以我们基本会分为3种:个人账号,公司账号和企业账号。1、个人账号:(1)费用:99美元一年 (2)App S...原创 2018-04-14 09:55:13 · 15788 阅读 · 1 评论 -
iOS NSTimer不被释放的若干问题
_timer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerFire:) ...原创 2018-03-19 11:52:40 · 2901 阅读 · 0 评论 -
iOS 纯代码布局之masonry的简单使用
参考博客Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。系统AutoLayout支持的操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及。Masonry采取了链式编程的方式,代码理解起来非常清晰易懂,而且写完之后代码量看起来非常少。之前用NSLayoutConstraint写很多代码才...原创 2018-03-19 14:54:48 · 895 阅读 · 0 评论 -
iOS autolayout自适应cell高度时使用estimatedRowHeight的一些问题
estimatedRowHeight是一个预估高度,再iOS11之前默认是0,也就是默认关闭,在iOS11下,默认44。再iOS11下也可以让estimatedRowHeight=0来关闭预估高度。我们在使用masonry或者xib生成cell进行自适应高度的时候,会设置一个预估的高度estimatedRowHeight。问题描述:在项目中发现,在iOS11中,当estimatedRowHeigh...原创 2018-03-23 09:43:51 · 2559 阅读 · 0 评论 -
iOS 预编译指令#if #ifdef #elif #else #endif #import #define的简单使用
OC中的预编译指令有三种功能1:宏定义 2条件编译 3文件包含1、宏定义1-1定义格式: #define 标识符 字符串1、 不含参数: #define TAG_VIEW 100862、 含有参数:#define MAX_INT(a,b) a+b1-2宏定义的说明1、宏名一般习惯用大写字母表示,以便与变量名相区别。但这并非规定,也可用小写字母。2、 宏定义是用宏名代替一个字符串,只作简单置换,...原创 2018-03-23 11:06:10 · 11226 阅读 · 1 评论 -
iOS cocoapods安装和使用
1.升级Ruby环境 :sudo gem update --system2.更换Ruby镜像首先移除现有的Ruby镜像终端输入:$ gem sources --remove https://rubygems.org/然后添加国内最新镜像源(淘宝的Ruby镜像已经不更新了)终端输入:$ gem sources -a https://gems.ruby-china.or...原创 2018-03-20 15:55:56 · 658 阅读 · 0 评论 -
iOS 使用Kiwi测试框架进行单元测试
关于使用XCTest进行单元测试,看这篇参考博客-硬币demo地址1.Kiwi简介Kiwi是一个iOS平台十分好用的行为驱动开发(Behavior Driven Development,以下简称BDD)的测试框架,有着非常漂亮的语法,可以写出结构性强,非常容易读懂的测试。2.Kiwi相对于XCTest的优势 --XCTest是基于OCUnit的传统测试框架,在书写性和可读性上都不太好...原创 2018-03-30 11:46:59 · 4482 阅读 · 0 评论 -
iOS 项目添加cocoapods引用头文件找不到和unrecognized selector sent to问题解决
问题描述1: 之前项目用到第三方类库,是直接拖到工程中使用的,后来用cocoapods添加后并将原来的第三方库删除后,出现#import找不到头文件的问题。解决办法: PROJECT -> info -> Configurations ->Debug/Release -> AppTests 后面的None改为Pods,好了,经过这个流程之后,重新编译你的工程,这...原创 2018-03-21 10:19:00 · 1072 阅读 · 0 评论 -
iOS 使用cocoapods导入ReactiveCocoa和ReactiveObjC框架
cocoapods使用ReactiveObjC -- 对应的是RAC的OC版本,最新3.1.0版本。ReactiveCocoa--对应的是RAC的swift版本,最新7.1.0版本。1.纯OC项目只需要引入ReactiveObjC,podfile文件如下platform :ios , "8.0"use_frameworks!target "RACTest" do pod 'ReactiveO...原创 2018-04-08 14:57:59 · 1527 阅读 · 0 评论 -
iOS 在Xcode中使用Git进行本地版本控制--本地篇
1.为工程添加本地仓库新建工程时,在新建页面勾选创建本地仓库,如果项目已经存在,则在Source Control->Create Git Repositories中创建创建完之后,控制finder让其显示隐藏文件,在命令行输入显示隐藏文件并重启finder,可以看到项目中多了一个.git文件夹,所有的控制信息,数据都会存贮其内,Git仓库会管理你的程序版本以及跟踪代码的改变,可以将Git仓库...原创 2018-04-04 10:22:22 · 4143 阅读 · 0 评论 -
iOS Xcode自带单元测试框架XCTest进行逻辑测试和异步测试
使用Kiwi框架进行测试,参考这篇Kiwi简单使用-硬币demo代码地址 在写完代码或者修改一个功能后,我们需要对修改的代码进行测试,看看修改或者添加的代码有没有bug,这时候你可能会重新运行程序,操作到相应的函数界面,下断点,看看代码是否正常工作,可是每次都运行代码进行测试的效率肯定不如只测试这一个函数的效率来的高,单元测试就是为你的某一个函数或者功能进行单独测试的功能。什么时候用...原创 2018-03-29 11:21:35 · 2747 阅读 · 0 评论 -
iOS 在Xcode中使用Git进行版本管理--GitHub篇
上一篇文章讲解了在本地使用Xcode中的git进行版本控制,Git进行本地版本控制。这篇讲解如何使用Xcode将代码放在GitHub上(公开的),公司使用的privite的github不在本讨论范围内。1.在Xcode中绑定github账号Xcode菜单Xcode Preferences ,点击+号,选择GitHub,输入GitHub账号,GitHub账号注册看这篇。添加完账号后,可以看到有htt...原创 2018-04-04 23:11:42 · 1995 阅读 · 0 评论 -
iOS 开发者账号添加手机号码 Program License Agreement has been updated.edit phone number
苹果开发者账号经常性的更新一些开发协议让开发者同意,苹果爸爸的要求,同意就好了。只有Agent权限账号会收到,团队成员账号权限区别请参考。 最近苹果开发者账号又更新了协议,apple id没有绑定手机号的,在开发者账号里会要求你必须绑定手机号(以前apple id都是邮箱申请的,可以不绑定手机号),如图 苹果开发计划许可协议已经更新。 为了访问某些成员资源,您必须接受最新的许可协议。首先...原创 2018-04-13 21:41:09 · 6521 阅读 · 5 评论 -
iOS 打开热点分享时页面下移的简单适配
问题描述: 当iPhone打开热点分享时,屏幕整体会下移20pt,导致对应的controller.view的frame高度减小20,当热点关闭后,屏幕上移,view的frame恢复原来的高度。解决办法:1.用masonry做好约束处理。例如:放置一个距离底部10的bottomview的话,如果高度相对位置的话,当热点分享打开,父视图整体下移,就会遮挡住一部分bottomview,如果用mas...原创 2018-03-16 10:52:59 · 4071 阅读 · 1 评论