iOS 性能优化方案-启动优化 从功能上梳理出哪些是首屏渲染必要的初始化功能,哪些是 App 启动必要的初始化功能,而哪些是只需要在对应功能开始使用时才需要初始化的。通常情况下,耗时较长的方法主要发生在计算大量数据的情况下,具体的表现就是加载、编辑、存储图片和文件等资源。每个库本身都有依赖关系,苹果公司建议使用更少的动态库,并且建议在使用动态库的数量较多时,尽量将多个动态库进行合并。main() 函数开始执行后到首屏渲染完成前只处理首屏相关的业务,其他非首屏业务的初始化、监听注册、配置文件读取等都放到首屏渲染完成后去做。
iOS 性能优化方案-弱网优化 但 WebP 是一种有损压缩。弱网情况下,在一些不影响操作,并能通过简单文字的描述告知用户该区域的内容,可以不加载图片,待到网络流畅状态再进行图片的加载。像一些多模块,模块之间相关联的复杂页面,多个模块会有多个请求,当某个请求失败需要添加“重新加载”的按钮时,建议所有请求重新请求一遍,防止模块之间关联的数据出现偏差,或者 UI 布局错乱。以用户等待容忍度不超过 2s 为原则,像首页这种多个业务模块一起呈现的页面,如果一次性请求完所有的接口数据,会等待很久,所以可以对多子模块,进行分段的“延迟”请求。
iOS 性能优化方案 批量传输,比如,下载视频流时,不要传输很小的数据包,直接下载整个文件或者一大块一大块地下载。从功能上梳理出哪些是首屏渲染必要的初始化功能,哪些是 App 启动必要的初始化功能,而哪些是只需要在对应功能开始使用时才需要初始化的。每个库本身都有依赖关系,苹果公司建议使用更少的动态库,并且建议在使用动态库的数量较多时,尽量将多个动态库进行合并。在不需要检测的场合,应该及时关闭这些硬件。对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)
微信小程序授权登录 服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。//部分结果,如果为true,则表示该用户对这项权限以及授权,如果没有授权,我们这需要通过button按钮让用户授权。当开发者在实现自定义登录态时,可以考虑以 session_key 有效期作为自身登录态有效期,也可以实现自定义的时效性策略。点击按钮,调起授权页面。调用wx.getSetting来判断,用户是否授权,如果没有授权,
一些学习资料链接 组件化和CocoaPodsiOS 组件化的三种方案_迷曳的博客-CSDN博客CocoaPods 私有化iOS组件化----Pod私有库创建及使用 - 简书CocoaPods1.9.1和1.8+ 使用 出现CDN: trunk URL couldn't be downloaded: - 简书cocoapod制作私有库repo - 简书【ios开发】 上传更新本地项目到github上 - 简书解决github打不开的方法(亲测有效) - 知乎gitlabgitlab常用的
SHA256、AES256加密 NSTimeZone * zone = [NSTimeZone timeZoneForSecondsFromGMT:[NSTimeZone systemTimeZone]]; NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; formatter.timeZone = zone; [formatter s...
证书相关注意问题 1.证书放的位置最好不要随便动2.自己搭建的推送服务器需要推送证书导出的P12证书,服务器需要这个P12证书的密码,两边必须密码一致才能推送 通过使用pushMeBaby第三方在mac本地测试远程推送,验证推送证书是否有效(貌似只能验证测试环境的) 这是详情:https://blog.csdn.net/u013263917/article/details/548832733.证书一年过...
自定义排序 #import "BaseViewController.h"@interface SortTableCellVC : BaseViewController@property (nonatomic, copy) NSString *domainId;@property (nonatomic,copy) void (^changeSortCellBlock)(NSString *domainId);@...
判断是否开启相机相册、定位权限并去系统开启权限 #import <Foundation/Foundation.h>typedef NS_ENUM(NSInteger, ChosePhontType) { ChosePhontTypeAlbum, //相册 ChosePhontTypeCamera //相机};@interface AuthorityManage : NSObject@property (nonato...
XCode8.3.3更新失败 在Appstore上更新Xcode8.3.3一直更新不下来,更新系统之后也不行,一直要我 输入appid的密码,最后导致电脑卡死,简直无法忍受。后来直接在开发者中心下载安装包才成功。下面放出下载的步骤:进入苹果开发者中心页面,拖到页面底部点击Downloads;进入到下载页面,不要点击该页面的xcode的download按钮,这里会进入到ituns页面,最后
iOS主流个人主页随滚动可缩放头图 效果是向上滚动图片变窄,向上滚动图片不变自定义头部#import <UIKit/UIKit.h>@interface ZoomHeaderView : UIView- (void)updateHeaderImageViewFrameWithOffsetY:(CGFloat)offsetY;@end#import "ZoomHeaderView.h"@interface ZoomHeaderView
本地闹钟 #import <Foundation/Foundation.h>@interface LocalNotificationManager : NSObject+ (instancetype)sharedInstance;/** * registerLocalNotification */- (void)registLocalNotification;/** * createLocalN
iOS获取UUID,并使用keychain存储 UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了1.新建一个工程,看一下自己的Bundle Id.这个Bundle Id 要和你用
解决 iOS NSDictionary 输出中文字符”乱码”(Unicode编码)问题 简单定义一个字典,输出结果:NSDictionary *dic = @{ @"我是中文字符": @"223333", @"aaa": @{ @"aaa": @"啦啦啦" }