自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 iOS极光推送

APP开发中经常要使用消息推送,下面我介绍常用的一种推送的集成使用方法极光推送集成框架使用cocoapods导入框架 pod 'JPush'导入头文件#import "JPUSHService.h"注册//Required //notice: 3.0.0 及以后版本注册可以这样写,也可以继续用之前的注册方式 JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init]; if (@availa

2020-11-25 16:54:07 1187

原创 iOS KVO的使用

什么是KVO?KVO 是iOS提供的一套事件通知机制。允许对象监听另一个对象属性的改变,并在改变时接收到事件。由于 KVO 的实现机制,只针对属性才会发生作用,一般继承自 NSObject 的对象都默认支持 KVO。KVO 可以监听单个属性的变化,也可以监听集合对象的变化。通过 KVC 的 mutableArrayValueForKey: 等方法获得代理对象,当代理对象的内部对象发生改变时,会回调 KVO 监听的方法。集合对象包含 NSArray 和 NSSet。KVO的使用注册观察者通过add

2020-11-25 15:42:45 765

原创 APP拉起小程序

APP和小程序相互打通的时候,经常会用到APP拉起小程序,小程序返回APP。下面介绍一下APP跳转小程序某个页面的功能1.APP关联小程序详细见其他博客:https://blog.csdn.net/qq_30356665/article/details/1055078402.代码WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunch...

2020-04-15 16:08:57 1016

原创 APP分享微信小程序

APP可以分享小程序到微信对话框中,还能设置具体的跳转页面,下面介绍一下开发流程1.APP绑定小程序打开微信开放平台,登录APP的微信开放账号,在管理中心找到APP设置。点击小程序类目,绑定小程序。绑定的时候需要登录小程序的账号密码,需要管理员扫码确认绑定。2.APP关联小程序点击APP应用的后面的查看,进入APP设置页面。在设置页面最下面“APP跳转小程序”添加关联小程序,点击关...

2020-04-14 11:35:51 5041

原创 iOS GCD多线程

iOS开发中经常会用到多线程的方法来异步处理一些耗时操作,来增加APP的性能及体验,充分利用设备的多核资源。多线程有多重方法实现,下面我们来说一种非常好用的方法GCD。1.GCD简介GCD是Grand Central Dispatch的缩写,含义是 “强大的中央调度器”。GCD会自动管理线程的生命周期,我们不需要编写任何的线程管理代码,GCD会自动利用多核。2.GCD任务和队列同步执行(...

2019-08-29 11:45:02 290

原创 iOS淘宝授权登录及跳转淘宝页面

的点点滴滴

2019-08-13 17:25:19 6000

原创 iOS分享(微信、qq、微博)

本文会介绍iOS常用的第三方分享(本文是分享带标题及藐视的h5地址),包括微信、QQ、微博,文章前部分会介绍每个平台的API集成及使用方法,文章后部分会介绍对三方分享(或者登陆)集成一起的三方框架ShareSDK(友盟分享也是可以的)。微信分享:集成前先去微信开放平台(地址https://open.weixin.qq.com)注册账号及注册APP。注册APP的时候注意最好是iOS版和安卓版...

2019-08-12 14:27:58 899 2

原创 iOS聊天客服功能(Udesk)

前言:在商城或者需要用户和平台交流的APP中需要用到客服功能。接下来会讲解Udesk客服功能的实现。技术文档在Udesk官网可以看到,本文讲述在项目中的集成实现流程。客服使用的PC端交流工具账号在公司客服手中,作者也没权限。想了解的开发者可联系作者,作者私下交流。集成SDK:pod 'UdeskSDK'使用的时候导入头文件#import "Udesk.h"初始化SDK:...

2019-03-05 11:53:18 912 3

原创 iOS与H5交互(WKWbebView)

前言:在iOS开发中,或多或少的会嵌入一些H5页面,有时候需要原生代码和H5页面进行交互。iOS8开始苹果推出性能更强大的WKWebView,所以一下方法是关于WKWebView与JS的交互。创建WKWebView:遵守协议<WKNavigationDelegate, WKUIDelegate, WKScriptMessageHandler>-(WKWebVi...

2019-03-01 11:51:17 184

原创 iOS系统访问权限大全

iOS需要一些手机的隐私权限,下面介绍一下常用的隐私权限是否开启的获取方法<!-- 相册 --><key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问相册</string> <!-- 相机 --><key>NSCameraUsageDescription</key> <string>App需要您的同意,才能访问相机&

2022-04-02 15:00:04 2903

原创 iOS国际化(多语言)App名称国际化

iOS开发中,有些APP是面向世界或者海外市场的,需要用到国际化的多语言配置。下面介绍下中英文配置新建多语言文件,Localizable.strings添加需要的语言,比如英语,然后勾选上配置上双语言,记得带上分好,oc swift都需要,不然报错使用方法需要使用NSLocalizedString类去获取字符串,坐着给Sring添加了个分类方法extension String { var W: String { return NSLocalize

2022-03-28 17:58:48 5244

原创 iOS暗黑(dark)模式适配

在iOS开发中,有些APP需要适配暗黑模式,下面介绍下暗黑模式需要开发者手动管理的任务。其他系统自动管理的任务不再说明不需要适配暗黑模式的话去info里面关闭即可Assets中的图片要选择一下支持暗黑模式,会有两种状态的图片,浅色深色各一套,系统会自动的更改颜色设置的话,UIColor新增了深色浅色方法,要注意深色只有在iOS13以上系统才生效class func setColor(_ light: UIColor, _ drak: UIColor) -> UIColor

2022-03-23 16:34:01 5190

原创 iOS横屏模式适配

iOS开发中,有时候会用到横屏模式,比如视频播放,科学计算器等。下满开发者就讲下横屏模式的注意事项屏幕方向info设置,建议只勾选竖屏就好了,不要勾选其他的,不然的话有些三方组件是强制竖屏的,会崩溃在AppDelgate中允许屏幕旋转func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask

2022-03-23 16:16:01 4029

原创 iOS runtime详解

因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个Objc运行框架的一块基石。Runtime消息传递一个对象的方法像这样[obj foo],编译器转成消息发送objc_msgSend(obj, foo),Runtime时执行的流程是这样的:首先,通过obj的isa指针找到它的 class ;在

2021-12-29 21:13:30 1241

原创 iOS底层原理

iOS atomic 和nonatomic的区别atomic会给get set加同步锁,多线程调用的时候会等待,保证了get set操作的完整性,但是会降低效率。但并不是绝对的线程安全,release操作不受set get影响可能会carsh深copy浅copy对不可变对象类型进行copy后得到的内存地址和原对象地址相同,是浅拷贝,其他都是深拷贝僵尸对象野指针已经被销毁的对象(不能再使用的对象),内存已经被回收的对象指向僵尸对象(不可用内存/已经释放的内存地址)的指针...

2021-12-29 14:28:21 464

原创 Swift常用控件集合

1.UIButton let btn = UIButton() btn.addTarget(self, action: #selector(btnClick), for: .touchUpInside) btn.layer.cornerRadius = 10.P btn.backgroundColor = .yellow btn.setTitle("点击一下", for: .normal) btn.setTitl

2021-10-27 17:48:13 541

原创 iOS Universal Link使用

Universal Link是iOS9退出的外部打开APP的新功能。之前打开APP使用的是scheme方式,这种方式不够安全。从微信SDK1.8.6版本开始就要求使用Universal Link这种方式去打开APP。苹果官方文档1. 配置xcode中Universal Link权限xcode配置Universal Link权限,Domains中的域名必须是使用applinks开头,然后输入自己的域名即可。配置完发现证书报错了,是因为APP在苹果开发者中心的id没有开启Universal Link权限。

2021-03-18 16:36:40 562 1

原创 iOS APP项目图片尺寸大全(启动页、icon、App Store展示图片)

iOS项目开发中需要用到很多的项目图片其中启动页、icon、App Store展示图等的尺寸较多一下我会汇总出来各种尺寸1.启动页尺寸以上红圈里面是首页版APP启动页的尺寸大全,iPad不需要支持的话,不用传iPad的启动页。...

2019-10-10 19:45:34 1180

原创 iOS cocoapods下载失败怎么解决(完美解决)

iOS 开发中,使用cocoapods管理第三方框架是非常方便的,但是在安装环境的过程中,由于网速等原因总是会在下载master文件时速度过慢或者直接下载失败。接下来介绍一种方法去解决这个问题。下载master文件失败的时候很难再成功,多次重试仍然失败,这个时候我们可以采取拷贝master文件的方法跳过下载操作。打开find,然后前往文件 ~/.cocoapods/repos/。这个文件夹下面就...

2019-09-02 15:10:03 1074

原创 iOS第三方登录(微信、qq、微博)

本文会介绍iOS常用的第三方登录,包括微信、QQ、微博,文章前部分会介绍每个平台的API集成及使用方法,文章后部分会介绍对三方登陆集成一起的三方框架ShareSDK(友盟也是可以的)。微信登录:集成前先去微信开放平台(地址https://open.weixin.qq.com)注册账号及注册APP,来获取appkey。注册APP的时候注意最好是iOS版和安卓版注册到一起,不然只注册一个端会导致...

2019-08-14 11:29:17 1482

原创 iOS图片显示模式(UIImageView)

ddd

2019-08-13 16:53:40 4562

原创 iOS GIF动态图(显示、上传、保存)

iOS系统提供的UIImageView控件是不支持GIF的加载的,在APP开发中会使用到一些GIF图片,本文主要讲解苹果手机上GIF图使用方法,主要是基于SDWebImage框架。一、界面显示:1.先集成SDWebImage及SDWebImage/GIF框架pod 'SDWebImage'pod 'SDWebImage/GIF'2.使用SDWebImage/GIF框架提供的兼容...

2019-08-12 13:57:53 2140

原创 公司工作中项目开发提交效率方法

前言:公司的项目为了适应市场的发展变化,需要快速的迭代。本文将会介绍项目开发中加快进度及减少BUG的方法。以下经验都是作者在公司项目的开发中的实际经验,有些可能违背了软件开发的规则,但是都是为了公司项目的快速稳定的迭代。都是个人经验不喜轻喷。开发准备及对接:1.产品对接接到任务分配的时候,先把自己负责的功能模块流程系统的看一遍,每一个页面,每一个逻辑,都要有一个把握。千万不能走一步...

2019-03-11 15:05:58 301

原创 iOS上传图片和视频(base64和file)

前言:iOS开发中经常会使用到图片和视频上传及保存到相册,下面我讲介绍视频图片的两种上传服务器的方法。以阿里云的OSS服务器为例。友情提示:上传图片方法在APP中使用很广泛,最好单独写一个图片上传的类,这样就很方便了。base64上传图片:NSString *strType = [GXToolClass getBase64Str:image]; NSMutableDi...

2019-03-05 11:36:28 794

原创 iOS 控制器的生命周期(UIController)

前言:在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方loadView:最先执行的方法,控制器关联的有Nib文件的时候,该方法会从Nib文件加载view。ViewDidLoad:该方法可以用来可以用来初始化控件、也可进行异步的网络请求,该方法在页面出来之前调用,方法在执行结束后,页面才会出现。因此该方法里...

2019-03-05 11:23:48 482

原创 iOS block的使用

前言:block是iOS开发中时间及参数传递的一种方法,和代理模式(delegate)相比,block是简单易用的轻量级事件传递方法。初始化:手打如下代码,或者从代码块把代码拖拽出来。typedefvoid(^upLoadImage)(NSString*str);//传参类型及形参@property(nonatomic, strong)upLoadImag...

2019-03-01 11:58:29 124

原创 iOS 常用的宏定义

屏幕尺寸#definekScreenWidth[UIScreen mainScreen].bounds.size.width#definekScreenHeight[UIScreen mainScreen].bounds.size.height手机型号#define kISiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfa...

2019-03-01 11:56:03 240

原创 iOS MJExtension的使用

前言:MJExtension是iOS的字典装模型的一个第三方框架。相对于JSONKit和SBJson相比MJExtension更简单易用、功能更强大。导入:使用CocoaPods导入(CocoaPods的使用方法在其他文档里面会介绍)pod'MJExtension'在使用该框架的文件里面导入头文件(推荐在pch文件中导入)#import "MJExtension.h"...

2019-03-01 11:54:10 1113

原创 iOS MJRefresh使用

前言:MJRefresh是iOS开发的一个表视图上下拉刷新的框架,该框架使用非常广泛,使用该框架的APP有腾讯微博、139邮箱、顺丰速运、人民日报、直销银行、山西日报等等。该框架在表视图刷新加载新数据的使用上非常方便。集成方法:CocoaPods:pod 'MJRefresh'使用范围:UIScrollView、UITableView、UICollectionView、UI...

2019-03-01 11:48:50 531

原创 iOS Version和Build的区别

iOS开发中,会面对一个问题,Version和Build的区别。这两种均是版本号,但是在开发中还是有一定的区别,而且用处很大。Version是版本号,在info.plist中对应的key是 CFBundleShortVersionString,这是在AppStore上看到的版本号。就是对外展示的版本号Build 是内部使用的版本号,是开发过程中标识项目版本。在iOS开发中,向Ap...

2019-03-01 11:46:45 880

原创 iOS代理模式(delegate)的使用

前言:代理模式是iOS中非常重要的一个模式,iOS SDK中的系统控件几乎都用到了代理模式。代理模式用来处理事件监听、参数传递功能。协议创建(Protocol):可手打如下代码,或者在代码块里面搜索"protocol",然后把协议的代码拖拽出来@protocol FullcellDalegate &lt;NSObject&gt;@required//遵守协议必须实现...

2019-03-01 11:43:53 306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除