自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 探究OC中使用copy和strong修饰数组的后果

探究OC中使用copy和strong修饰数组的后果使用copy修饰数组a. 不可变指向不可变//Person.h@interface Person : NSObject@property(nonatomic, copy) NSArray * testArray;@end// 测试代码NSArray *arr = @[@1,@2,@3];Person *p = [[Person alloc]init];p.testArray = arr;NSLog(@"arr-->%p", ar

2021-07-05 09:02:31 245

原创 Xcode到底对NSString做了什么优化?

Xcode到底对NSString做了什么优化?首先看个例子: 一般在OC中都是在堆中开辟一块内存存储对象, 但是NSString是有点区别的.NSObject *obj1 = [[NSObject alloc]init]; //<NSObject: 0x100539310>NSObject *obj2 = [[NSObject alloc]init]; //<NSObject: 0x100538a90>​结论:NSString对象如果通过字面量创建的话, 是存

2021-07-04 16:01:50 175

原创 iOS越狱 & 逆向

iOS越狱 & 逆向

2021-04-25 21:40:26 159

原创 网络协议详解

文章目录OSI 七层模型数据是如何在层与层之间传递的?应用层首部字段请求首部字段:响应首部字段实体首部字段通用首部字段:HTTP状态码表示层会话层传输层为什么是三次握手?网络层数据链路层物理层概念路由器IP地址 & MAC地址网段 & 广播网关全双工 & 半双工调制解调器传输速率中继器ICMP 控制报文协议网卡TCP粘包原因及解决方案OSI 七层模型OSI网络参考模型自下而上分层:物理层数据链路层网络层传输层会话层表示层应用层模型中

2021-04-25 02:23:41 314

原创 加锁 & 死锁

iOS加锁类型自旋锁自旋锁不会让等待的线程休眠. 会一直等待, 效率较高, 互斥锁会让等待的线程休眠使用自旋锁进行加锁操作 需要导入#import <libkern/OSAtomic.h>- (void)osspinLock{ __block OSSpinLock spinlock = OS_SPINLOCK_INIT; // thread1 dispatch_async(dispatch_get_global_queue(DISPATCH_QUE

2021-04-18 23:11:07 209

原创 对称加密 & 非对称加密

对称加密对称加密意思就是加密与解密使用的是同一把秘钥且只有一个秘钥, 叫做私钥. 常见的对称加密有DES, 3DES, AES等非对称加密加密与解密使用的是不同的秘钥, 一把公钥, 一把私钥, 公钥加密的信息只有对应的私钥才能解密, 私钥加密的信息只有对应的公钥才能解密常见是非对称加密如RSA(支付包使用的加密), ECC等对称加密效率要明显高于非对称加密, 在秘钥管理以及通讯时, 秘钥交换的安全性不能保障, 大多数情况会混合进行使用.https协议就是结合对称加密与非对称加密进行通讯.先

2021-04-15 00:17:33 223

原创 内存分区

内存大概可分为栈区, 堆区, 全局区/静态区, 常量区, 代码区.1.栈区存放局部变量, 函数的参数值, 函数跳转地址, 先进后出, 一旦出了作用域就会被销毁, 由系统来自动管理内存, 栈区的地址是从高到低分配的2.堆区程序员来管理内存, 程序员负责申请和释放, 堆区的地址是从低到高分配的,3.全局区/静态区存放全局变量和静态变量(未初始化过, 初始化过), 初始化的全局变量和静态变量存放在一块区域, 未初始化的全局变量和静态变量在相邻的另一块区域, 程序结束后由系统释放4.常量区存放常

2021-04-06 23:03:29 59

原创 进程 & 线程

进程工程师写完的程序是存放在系统的磁盘中的, CPU从硬盘中读取程序到内存中运行, 这个在内存中的可执行程序实例就叫做进程.CPU将多个程序读取到内存中运行时, 也就创建了更多的进程. 每个进程在自己内部都有一个虚拟独立的地址空间, 每个进程都以为自己独占着整个内存, 不需要关心其他进程的实际位置, 这样就把进程很好的分隔开来了.虽然每个进程都有自己虚拟独立的地址空间, 但是为了保障系统运行安全, 虚拟地址空间被划分为用户空间和内核空间:操作系统运行在内核空间, 用户程序运行在用户空间, 内控

2021-04-05 16:07:15 156 1

原创 产品导航设计

标签导航: 微信优点:清楚当前所处位置轻松在各个入口见频繁跳转不会迷失直接展现最重要入口的内容信息缺点:功能入口过多时, 该模式显示的比较笨重舵式导航: 微博优点:需要突出重要且频繁操作的入口缺点:同标签导航抽屉导航: 将菜单隐藏在当前页面后, 点击后拉出菜单, 现在基本不用优点:节省页面展示空间让用户注意力聚焦在当前页面扩展性好缺点:不适合频繁切换的应用宫格导航: 美图秀秀优点:直接展现各项内容方便浏览经..

2021-03-29 23:43:04 110

原创 iOS 耗电量优化

文章目录iOS 耗电量优化1. 耗电量概念2. 节省电量的基本原则3. 耗电大户4. 电量测试 -- 眼观5. 电量测试 -- Xcode 测试耗电量6. 电量测试 -- 系统级别日志解析7. 参数列表及说明**表一: 电量信息数据库中部分表名及说明:****表二: RootNodeID硬件对照表****表三: iPhone 电池容量对照表**iOS 耗电量优化前言: 在电量排行榜没出之前, 用户对单个应用的耗电情况几乎是无感的, 随着Apple推出的电量排行榜, 让iPhone用户更加关注应用耗电量

2021-03-29 00:03:50 751

原创 C语言笔记

目录C语言笔记C语言特性gcc编译全局变量与局部变量在内存中的位置数组枚举指针C 标准库<assert.h><ctype.h><math.h><signal.h><stdlib.h>内存管理C语言笔记C语言特性C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样gcc编译如果是一个源文件用gcc编译:gcc a.c如果是多个 c 代码的源码文件,编译方法如下:test1.c 与 test2.c

2021-03-29 00:01:35 71

原创 iOS apple 登录

Handle User Credentials使用场景: 点击apple登录, 成功后, 使用user等信息传给服务器验证sign in with Apple #import <AuthenticationServices/AuthenticationServices.h>// 处理登录按钮点击事件- (void)test:(id)sender{ if (@available(iOS 13.0, *)){ ASAuthorizationAppleIDPr

2021-03-29 00:01:00 325

原创 iOS HealthKit

1. 介绍HealthKit是苹果提供的一个框架, 用来访问和分享健康和健身数据, HealthKit为健康和健身数据提供了一个中心仓库, 在用户授权后, app可以通过HealthKit store 访问分享这些数据. HealthKit 提供了大量的数据类型和单位, 用不不允许自己创建数据类型和单位,2. HealthKit 数据特征数据(Characteristic data), 如生日, 血型, 皮肤, 生物性别等, 用户可以直接读取, 但是输入的话必须在健康app中.样本数据(Sam

2021-03-29 00:00:25 411

原创 产品经理必备技能

产品经理必备技能市场分析: 行业发展, 行业动态, 市场评估, 商业策略需求管理: 需求收集, 需求分析, 需求筛选, 整体规划竞品分析: 竞品选择, 竞品调研, 竞品分析产品设计: 功能结构梳理, 流程梳理, 交互原乡, 文档输出用户分析: 用户研究, 用户体验, 用户画像产品研发过程: 沟通能力, 协调资源能力, 项目进度的把控测试上线: 项目测试, bug收集修改, 产品上线市场推广: 产品推广, 产品培训持续优化, 不断迭代: 数据分析, 新需求的收集, 版本的迭代...

2021-03-28 15:37:09 97

原创 产品定义, 需求收集, 用户画像

如何确定产品的定义:一句话可以概括某个产品, 如果你的产品很难用一句话描述清楚, 要么就是定位不清晰, 方向不明确, 要么就是在做一个超级app.Slogan是产品定义的浓缩精华, 有了产品定义之后, 可以迫使产品经理努力思考产品的方向和机会, 在竞争中寻找差异化, 也限定了大致的范围, 让团队不至于茫然. 设计slogan考虑使用人群, 主要功能, 产品特色.如何确定用户需求:在具体的场景中, 目标用户的目标事件,根据一定的方法, 如头脑风暴, 调研访谈等, 得出一系列需求列表从商业价值和

2021-03-28 15:26:55 152

原创 iOS归因分析

iOS归因分析IDFA:IDFA广告标示符,适用于对外:例如广告推广,换量等跨应用的用户追踪等。IDFA是目前苹果生态广告交易的主要标识,存储在用户iOS系统上,同一设备上的应用获取到的IDFA是相同的。一般跟广告商交易一个用户后广告商需要给你提供用户的IDFA作为凭证,主流的广告平台腾讯广点通、新浪粉丝通对账是基于IDFA的。 另外,在统计唯一用户的时候,IDFA的可变性会造成部分用户的重复统计。当用户限制广告追踪的时候获取到的IDFA: 00000000-0000-0000-0000-0000000

2021-03-28 15:09:24 947

原创 iOS 小组件widget

iOS 小组件widgetwidget可以让用户快速访问他们认为重要的信息, 如今天的天气, 股价, 日程表, 或者快速的执行一个任务如果用户允许, 小组件可以出现在锁屏界面: They do so in the “Allow Access When Locked” area by going to Settings > Touch ID & Passcode > Notifications View.用户和widget交互是快速的并且受限制的, 应该设计一个简单的, 流线

2021-03-28 14:35:51 679

原创 Universal link 原理

Universal link 原理 在安装某个app的时候,iOS系统会检查App bundle中的Info.plist文件。如果发现有associated domain字段,会读取**applinks**的地址,比如open.mycompany.com,然后系统会去该域名根目录下寻找一个名为***apple-app-site-association***的文件。如果有,那么下载到本地,然后解析这个文件。根据path建立与appid的映射关系,保存在系统的数据库中。如果有访问https://open

2021-03-28 14:34:49 1459

原创 Git 常用命令

Git 常用命令拉取远程分支到本地: git checkout -b develop origin/develop从指定分支创建新的分支: git checkout -b some-feature develop删除分支: git branch -d branchName将目标分支合并到当前分支: git merge branchNameFeature Branch Workflow**Feature Branch Workflow 的核心理念**是:master 分支用于部署,功能开发应该在专

2021-03-28 14:34:01 77

原创 iOS 定位原理

iOS 定位原理iOS定位有三种方式<iBeacon 不再本次研究范围内>, 手机基站定位, wifi定位, GPS(AGPS辅助定位系统, 比GPS更优), apple会根据当前信号情况和网络环境, 动态的去调整三种方法组合起来的调用次数和顺序, 这个开发者无法干预, 只能在CLLocation中直接拿到计算结果, 所以如果想要做优化, 从应用层的角度来讲的话, 也就只能放在CoreLocation 采集到精度之后了.手机基站定位:原理:每个手机基站都有一个标识符,iPhone或3G i

2021-03-28 14:33:11 1903

原创 推送的优劣和原则

推送的优劣和原则推送就是在用户没有打开app的情况下知道app内部发生了什么. 要让推送成为用户的帮手, 不仅是运营手段.**优点: **提高产品的活跃度带动功能模块的使用率增加用户粘度唤醒沉睡的用户提高留存率**缺点: **容易对用户形成打扰, 招致卸载用户对推送变得麻木产品丧失用户信任推送的原则:给推送一个理由, 为什么要推送, 你为什么要推送给用户一个理由: 用户为什么要接收你的推送在正确的时间推送正确的内容, 要让推送成为用户的帮手, 不仅仅是产品运营的重要手段

2021-03-28 13:07:38 836

原创 错误页面设计

产品设计之错误页面设计输入错误手控类型的输入错误:**提示: ** 最好给到用户明确的提示, 比如具体哪里可以拖动, 从而避免发生手控类型的错误容错: 客户端要有一定的容错机制, 如用户点击的位置不对或者拖动的位置不对, 在一定程度上作证正确的反馈, 比如百度搜索, 和搜狗输入法发容错机制访问错误为什么错误, 需要给用户反馈怎么解决错误, 需要给用户一个解决方案, 不仅仅是告诉用户错误. 配图 + 文字信息 + 解决方案...

2021-03-28 13:07:03 154

原创 产品经理面试

产品经理面试你们是如何收集用户需求的:1. 核心用户访谈2. 竞品分析3. 数据分析4. 老板意志何为成功的产品1. 解决用户需求2. 要有粘性3. 拥有良好的视觉体验, 交互体验, 逻辑体验, 情感体验…待续...

2021-03-28 13:06:16 42

原创 iOS 设备震动

1 <AudioToolbox/AudioToolbox.h>框架中的震动一般的震动 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)普通的震动,类似3DTouch(Peek) AudioServicesPlaySystemSound(1519);普通的震动,类似3DTouch(Pop) AudioServicesPlaySystemSound(1520);连续三次的短震动 AudioServicesPlaySystemS

2021-03-26 12:15:17 855

原创 高斯毛玻璃-Swift

直接将图片转换为模糊. // 高斯毛玻璃-Swift func convertImageToBlur(_ originImage: UIImage) -> UIImage? { let context = CIContext.init(options: nil) let inputImage = CIImage.init(image: originImage) let filter = CIFilter.in

2021-03-26 12:11:45 116

原创 webview访问本地html文件结构

需要设置[configuration.preferences setValue:@YES forKey:@"allowFileAccessFromFileURLs"];

2021-01-22 11:38:15 122

原创 Mac python环境变量配置

[[ -s “KaTeX parse error: Expected 'EOF', got '&' at position 19: …E/.profile" ]] &̲& source "HOME/.profile” # Load the default .profile[[ -s “KaTeX parse error: Expected 'EOF', got '&' at position 27: …cripts/rvm" ]] &̲& source "H

2021-01-13 19:01:39 228 1

原创 macOS 遇到 ‘Operation not permitted‘, ‘Read-only file system‘ 解决办法

重启,过程中按住 command+R,进入保护模式打开终端, 输入: csrutil disable, 再次重启继续操作文件, 如果显示 Read-only file system, 则终端执行 sudo mount -uw /继续操作文件即可

2021-01-13 16:53:38 567 1

原创 产品经理之文档写作

文章目录1. 什么是产品产品的不同定义如何评价产品2. 产品经理的六大职责1. 市场调研与分析分析竞争状况自身资源与满足用户需求的匹配程度该阶段目标该阶段输出文档, 根据汇报对象与实际情况该阶段注意事项2. 产品规划定义与产品设计产品规划定义产品设计输出文档3. 产品研发过程中的项目管理与各团队充分有效的沟通, 协调资源保证产品按照既定目标正确前进需求管理本阶段目标4. 产品宣讲5. 产品推广协助6. 产品推出后的管理与迭代主要工作3. 产品经理的自我管理能力1. 情绪管理2. 时间管理3. 目标管理4.知

2020-12-10 00:51:03 374

原创 C语言笔记

文章目录C语言笔记C语言特性gcc编译全局变量与局部变量在内存中的位置数组枚举指针C 标准库C语言笔记C语言特性C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样gcc编译​ 如果是一个源文件用gcc编译:gcc a.c如果是多个 c 代码的源码文件,编译方法如下:test1.c 与 test2.c 是两个源代码文件。gcc test1.c test2.c -o ...

2019-12-26 18:32:20 134

原创 CDN: trunk Repo update failed

CDN: trunk Repo update failedMac版本: 10.15.1pod版本: pod --version1.8.4pod install 的时候遇到这个问题的话,可以参考一下.1 pod repo list​ 查看列表, 可能会有3种情况: 0repos / 1 repo(master) / 2 repos(master + trunk)根据自己不同的...

2019-12-25 11:50:28 1829

原创 Two-factor authentication must be turned on for your Apple ID

Two-factor authentication must be turned on for your Apple ID当在Xcode中新登录一个appid,出现下边这个问题的时候, 那就继续往下看吧.这是因为appid没有开启双重验证, 在苹果官网的账号管理中登录appid如果开启的话是这样的如果没开启的话可能会是这样, 也可能是其他的注意: two step verificat...

2019-12-05 12:41:12 372

原创 记录一些常用地git命令

git log --pretty=oneline 简单输出提交内容并且输出完整的commit版本号,git log --oneline 简化输出提交历史, 并且输出commitid 的前7位数字Git reset --hard HEAD^ 回退到上个版本git reset --hard 734289 回退到指定版本git reflog 查看历史命令git checkout –...

2019-11-08 14:38:32 62

原创 根据坐标数组计算iOSpolyline需要在地图上展示的rect

根据坐标数组计算iOSpolyline需要在附图上展示的rect// 原生地图根据坐标数组计算需要展示是MKMapRect- (MKMapRect)calculateMapRect{ __block FPCoordinate *minCoordinate = [[FPCoordinate alloc] init]; __block FPCoordinate *maxCoordi...

2019-10-18 15:48:04 140

原创 iOS 内购中的本地化测试. How to test 'priceLocale'?

在啃了不少文档之后, 内购的东西终于理顺了, 也理清楚了, 可以搞UI了, 因为app不仅在国内用, 还要在国外用, 所以根据国家不同显示不同的货币符号和对应的价格就很有必要了(例如 $0.99, ¥666). SKProductsRequest中始终返回的是中文, 包括localizedTitle,localizedDescription等都是, 修改系统语言, 修改系统区域, noth...

2019-07-03 16:32:38 1788

原创 iOS内购之invalidProductIdentifiers小记

invalidProductIdentifiers 小记iOS自动续期订阅iOS自动续期订阅其他细节这里都不在赘述, 网上有太多的教程了. 这里仅记录一个可能会遇到的问题. 就是从App Store请求回来的产品ID, 一直存在invalidProductIdentifiers这个参数里边.根据官网文档的描述, 包括对invalidProductIdentifiers参数的描述, 各种配置都...

2019-06-25 13:35:05 1514

空空如也

空空如也

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

TA关注的人

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