ios
huxinguang002
科技改变生活
展开
-
iOS 设备型号对应机型
可参考https://www.theiphonewiki.com/wiki/Models原创 2019-05-14 10:25:00 · 5749 阅读 · 0 评论 -
iOS如何通过安装描述文件获取设备UDID
首先,需要解释一下,iOS有一个MDM(Moblie Device Management,移动设备管理),同样可以获取设备的UDID,但比较麻烦,本文不做介绍。本博客介绍一下如何做出类似蒲公英一样获取设备UDID的功能。1. 准备一个.mobileconfig文件,文件内容大致如下:<?xml version="1.0" encoding="utf-8"?><!DOC...原创 2019-05-05 13:19:44 · 13589 阅读 · 1 评论 -
git 常用命令行
git status 查看当前状态git log 查看提交日志git branch 查看本地分支git branch -r 查看远程分支git branch -a 查看所有分支(本地+远程)git branch branchname 创建分支(本地)git checkout branchname 切换分支(本地)git checkout -b branchname 创建并切换分支(本地)git b...原创 2018-05-28 13:51:24 · 1921 阅读 · 0 评论 -
Mac 使用openssl生成RSA公钥和私钥
1. 选择一个存放公钥和私钥的路径,打开终端cd 到该路径下;2. 终端中输入命令(生成私钥):$openssl genrsa -out rsa_private_key.pem 1024其中 rsa_private_key 可以自己取名3. 继续在终端输入命令(将私钥转换成PKCS8格式): $openssl pkcs8 -topk8 -inform PEM -in rsa_private_key...原创 2018-04-25 21:59:43 · 1583 阅读 · 0 评论 -
iOS 如何让WKWebView侧滑返回时html逐级返回,而不是直接返回到上级控制器?
iOS使用WKWebView来加载html页面时,如果html页面只有一级的话,那么侧滑返回没什么问题,但如果html是多级的话,那么侧滑返回时有时就会出现直接返回到上级控制器,而不是返回上一级html页面。这是因为html页面的侧滑返回和导航控制器的侧滑返回发生冲突了,系统无法识别到底是哪一种侧滑返回。WKWebView有一个canGoBack属性(A Boolean value indicat...原创 2018-04-16 15:47:23 · 10894 阅读 · 0 评论 -
关于React Native 工程运行在iPhoneX上时上下黑边的问题
最近在用React Native做项目,工程运行在除iPhoneX之外的设备上都显示正常,而在iPhoneX上运行时就会出现上下黑边的情况。如下图所示:刚开始以为是React Native 适配iPhoneX的问题,费了好大功夫在网上查相关资料,都没有解决问题。忽然想到可能并不是React Native的问题,而是是原生设置出的问题。于是就在Images.xcassets的LaunchImage中...原创 2018-04-10 12:14:36 · 2135 阅读 · 0 评论 -
Swift 实例方法和类型方法
Swift 中方法有两种类型:实例方法和类型方法。实例方法是属于某个类(Class)、结构体(Struct)或者枚举(Enum)类型实例的方法(注:结构体和枚举能够定义方法是Swift和Objective-C的主要区别之一)。其语法跟Swift函数的语法一致,实例方法要写在它所属的类、结构体或枚举的前后大括号内。struct Point { var x = 0.0, y = 0.0 ...原创 2018-03-15 09:16:17 · 1526 阅读 · 0 评论 -
iOS系统版本设备占比官方数据
https://developer.apple.com/support/app-store/原创 2019-05-14 13:49:09 · 7392 阅读 · 0 评论 -
用户交互与动效网站
https://dribbble.com/原创 2019-10-10 11:25:37 · 613 阅读 · 0 评论 -
git 只提交某个文件的修改内容
git commit <file> -m"your comment"不需要先git add,执行后,直接git push即可原创 2019-07-22 11:28:31 · 25344 阅读 · 0 评论 -
git 撤销 add
只撤销 add,所做的修改仍保留git reset HEAD <file>如果不指定文件名,则撤销add的所有文件原创 2019-07-22 11:24:05 · 564 阅读 · 0 评论 -
iOS 数组移动元素,其他元素自动移位
- (void)moveArrayItemFromIndex:(int)fromIndex toIndex:(int)toIndex{ NSMutableArray *array = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"].mutableCopy; NSString *str = array[fromIn...原创 2019-07-15 13:50:15 · 3296 阅读 · 0 评论 -
git commit之后,想撤销commit
完代码后,我们一般这样git add . //添加所有文件git commit -m "本功能全部完成"执行完commit后,想撤回commit,怎么办?这样凉拌:git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。说一下个人理解:HEAD^的意思是上一个版本,也可以写成HEAD~1...转载 2019-07-15 11:06:24 · 336 阅读 · 0 评论 -
Swift 数组Array作为函数参数时如何在函数内部改变其值?
在Objective-C中我们经常会将可变数组(NSMutableArray)作为函数参数,然后在函数内部对其值进行更改:- (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *numbers = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil]; [se...原创 2018-03-13 11:10:14 · 5076 阅读 · 0 评论 -
Swift 值类型和引用类型
Swift中有两种类型:值类型(Value Type),引用类型(Reference Type)。1. 值类型在Swift中,所有的基本类型:整型(Int)、浮点型(Float)、布尔类型(Boolean)、字符串类型(String)、数组(Array)、字典(Dictionary)、元组(Tuple)都是值类型,它们的底层都是以结构体(Struct)的形式实现的,所以结构体(Struct)也是值...原创 2018-03-13 09:28:21 · 1906 阅读 · 0 评论 -
Swift 函数参数前的“_”是什么意思?
Swift中带参数的函数的一般写法是这样的:func someFunction(firstParameterName: Int, secondParameterName: Int) { // 在函数体内,firstParameterName 和 secondParameterName 代表参数中的第一个和第二个参数值}调用该函数时,写法是:someFunction(firstParam...原创 2018-03-02 13:47:48 · 7708 阅读 · 0 评论 -
iOS 10.3 新特性 app评分 SKStoreReviewController swift
iOS 10.3提供一种新的方式让用户为app评分,通过SKStoreReviewController可以让用户在应用内部为应用评分,而不需要跳转到App Store。只需在你的评分入口方法中调用 SKStoreReviewController 的类方法 requestReview() 即可,Swift 版如下,注意OC版 iOS 10后判断系统版本的宏定义跟之前不一样了,百度一下你就知道。if #原创 2017-05-24 09:51:14 · 1958 阅读 · 0 评论 -
iOS Xcode中的Workspace、Project、Target、Scheme
本文译自:Guide and Sample CodeProjectXcode中的project是一个包含了所有文件、资源以及构建一个或者多个product所需信息的一个仓库。project包含编译product所用的所有元素,并帮我们组织这些元素之间的关系。一个project可以包含一个或者多个target,target指定了如何编译product。project定义了其内部所有target的默认编翻译 2017-05-23 10:17:59 · 6272 阅读 · 0 评论 -
iOS 299美元企业账号申请流程及注意事项
iOS开发者众多,但并不是所有的开发者都对账号申请,证书配置这些问题都清楚,毕竟不是所有开发者都能够经历这个环节,多数情况下是进公司之前这些东西都已经有了。作为一个合格的iOS开发者,我们必须要了解苹果的三种开发者账号,下图对三者进行了比较和总结,我在图中需要注意的地方做出了标注。个人(Individual)开发者账号可以升级为公司(Company)账号,但个人(Individual)...原创 2017-04-20 14:54:28 · 48571 阅读 · 13 评论 -
“File too small for architecture arm64”, “clang: error: linker command failed with exit code 1 ”
iOS开发时,有的时候我们会在当app正在编译运行的时候长按app删除,接着又重新编译运行,之前本来好好的程序未更改任何代码却突然报出“File too small for architecture arm64”, “clang: error: linker command failed with exit code 1 ”的错误,我最近就碰到这个问题并在Stack Overflow上找到了答案。原创 2017-04-06 16:30:22 · 2292 阅读 · 0 评论 -
iOS stringWithFormat 和 initWithFormat 有何不同?
在非ARC环境下,循环构造10w个NSString,首先是stringWithFormat,占用内存 5.2Mfor (int i = 0; i < 100000; i++) { [NSString stringWithFormat:@"%d",1234567890]; }然后加上@autoreleasepool,占用内存 520KBfor (int i = 0; i < 1原创 2017-04-10 11:15:06 · 1229 阅读 · 0 评论 -
iOS runtime Method Swizzling(方法交换)的应用场景实例
iOS中有各类容器的概念,容器分可变容器和非可变容器,可变容器一般内部在实现上是一个链表,在进行各类(insert 、remove、 delete、 update )难免有空操作、指针越界的问题。 最粗暴的方式就是在使用可变容器的时间,每次操作都必须手动做空判断、索引比较这些操作: NSMutableDictionary *dic = [[NSMutableDictionary alloc] in转载 2017-04-07 16:24:12 · 4585 阅读 · 0 评论 -
MD5算法用途
Message Digest Algorithm MD5(消息摘要算法)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。 MD5算法特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、不可逆:根据输出值,不能得到原始的明原创 2017-03-27 17:11:11 · 2518 阅读 · 0 评论 -
Swift学习笔记
1、加法运算符也用于String的拼接:“hello,” + “world” // 等于 “hello, world”2、浮点数求余计算:不同于 C 语言和 Objective-C,Swift 中是可以对浮点数进行求余的。例如: 8 % 2.5 // 等于 0.53、检查类型:用类型检查操作符(is)来检查一个实例是否属于特定子类型。类型检查操作符返回 true 若实例属于那个子类型,若不属于返原创 2017-03-27 15:19:17 · 639 阅读 · 0 评论 -
iOS https 2017 年 1 月 1 日 审核
从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用 NSAllowsArbitraryLoads 来绕过 ATS 限制的,也就是说,我们最好保证 app 的所有网络请求都是 HTTPS 加密的,否则可能会在应用审核时遇到麻烦。但是我们可以通过NSExceptionDomains来针对特定的域名开放HTTP可以容易通过审核。)开发者可以针对某些确定的URL不使用ATS,这需要在原创 2016-12-12 17:38:10 · 777 阅读 · 0 评论 -
iOS隐藏导航条1px的底部横线
默认情况下会有这条线第一种方法:123456UINavigationBar *navigationBar = self.navigationController.navigationBar;// white.png图片自己下载个纯白色的色块,或者自己ps做一个[navigationBar setBackgroundIm转载 2016-10-25 15:15:58 · 464 阅读 · 0 评论 -
iOS10相册相机闪退bug
iOS10系统下调用系统相册、相机功能,遇到闪退的情况,描述如下:This app has crashed because it attempted to access privacy-sensitive data without a usage description.The app's Info.plist must contain an NSPhotoLibraryUsageDesc转载 2016-10-24 11:19:09 · 676 阅读 · 0 评论 -
iOS 如何提升图像绘制性能
本文译自 Guides and Sample Code中给出的对问题 Q: What can I do to improve my image drawing performance (CGContextDrawImage, UIImage/-drawInRect:, etc)? 的回答。通常,在iOS开发中我们应该避免频繁调用-drawRect: 方法, 这一点对提升iPhone 4的性能至翻译 2017-05-24 15:30:01 · 1070 阅读 · 0 评论 -
ios 如何减小app的大小
本文译自:Guides and Sample Code 中对问题:How can I make my app smaller, so that it is faster to download and install? 的回答。本文介绍一些如何减小app首次下载安装时的大小的技巧。注意这里说的是“首次安装”,跟更新app不一样。关于“如何减少app更新时下载包大小”的介绍详见我的另外一篇译文:测量翻译 2017-05-25 10:52:57 · 6727 阅读 · 0 评论 -
Swift 语法糖 if let 和 guard 的使用
语法糖是指计算机语言中添加的某种特殊语法,这种语法对语言本身的功能没有什么影响,但更方便编程者使用,使用语法糖能够增加程序的可读性、优化代码,从而减少出错。 今天我想要说一下,Swift中的 if let 和 guard 这两颗语法糖是如何达到魔法功效的。 要知道if let 和 guard起到了什么作用,我们不妨先设想没有它们,代码是怎么写的。1. if letSwift 中...原创 2018-03-01 16:38:47 · 2648 阅读 · 0 评论 -
iOS block截获变量
block截获变量是什么意思?我们先来看一段代码:int i = 10;void (^block)(void) = ^{ NSLog(@"In block, i = %d", i);};i = 200;block();NSLog(@"i = %d", i);这段代码的输出结果是什么呢?控制台输出结果为:有人肯定会想,在 block 执行之前已经把变量 i 的值改成 20 了,为什...原创 2018-03-15 17:32:55 · 839 阅读 · 0 评论 -
Charles抓包http/https请求
移动开发经常需要接口调试,有时需要抓取网络请求进行分析排错。下面就Charles这款抓包工具来简要说明一下http和https两种类型的网络请求的抓取过程。硬件:电脑一台(本例为Mac),手机一部(本例为iPhone),软件:Charles(可以下载官方试用版,也可找个破解版的)1、http类型网络请求抓取Mac连WiFi,进入网络偏好设置,找到网络ip原创 2018-01-13 17:43:34 · 1495 阅读 · 0 评论 -
iOS11 如何防止用户录屏?
iOS 11中新增了录屏功能,之前的系统要想录屏,只能通过Airplay 或者屏幕镜像软件,例如 Reflector。有了录屏功能确实方便了用户,但对于一些做内容的公司和网站,特别是视频网站,并不希望自己的付费视频被录制并在互联网上传播。那么ios系统下如何避免自己app的内容被录屏呢?iOS 11SDK 中新增了UIScreen的API用以告知应用当前屏幕正在录屏。当UIScreen.isCapt原创 2017-12-29 17:15:24 · 17604 阅读 · 0 评论 -
iOS 中 FaceID、相机、相册、定位、NFC、通讯录、蓝牙、健康等权限的查询和获取(swift)
鉴于官方文档给出的demo比较详尽,我这里就不作赘述,只给出官方demo的下载地址。https://developer.apple.com/library/content/samplecode/PrivacyPrompts/CheckingandRequestingAccesstoDataClassesinPrivacySettings.zip 如果官方链接失效,可以到我的百度网盘下载。链接:ht原创 2017-12-29 11:28:37 · 1969 阅读 · 0 评论 -
iOS开发者账号过期续费
Apple 开发者账号的缴费周期是一年,在距离账号会员过期一个月的时候,开发者账号邮箱会收到一封邮件,如下图所示:登录开发者账号后,页面顶部会出现提示,如下图所示:账号过期后如果没有续费,跟证书过期不一样,证书过期不会对已上架的app有影响,只需要下次上架app时更新证书即可;但账号如果过期,该账号关联的app会被从AppStore下架,所以需要及时续费。续费只需要点击上图过期原创 2018-01-02 10:32:45 · 11170 阅读 · 5 评论 -
ios 用私人邮箱注册开发者公司账号后如何把权限转移到公司公有邮箱?
问题描述:我们公司ios开发者账号(company类型)是由之前的主管弄的,他不是搞ios的,所以用的是他私人的apple id来加入开发者计划的,而不是一个用公司的公共邮箱注册的Apple id来加入的,所以就会出现一个问题,每次apple 发送邮件都是发到他的私人邮箱里。这样他每次就需要将邮件转发给开发者,很不方便。解决方案:company类型的开发者账号,有一个“Transfer Team A原创 2017-10-26 11:09:22 · 7797 阅读 · 4 评论 -
iOS distribution发布证书过期或者被手动revoke了app会被下架吗?
在距离distribution 证书过期一个月(或被手动revoke了)的时候会受到apple的邮件虽然distribution过期(或者被手动revoke)了,如果你的开发者账号是company(公司)类型或个人类型的,只要你的每年99$的开发者membership没有过期,就不会对已上架的app产生影响,只是你下次发布或者更新app就要重新生成一个distribution证书了。如果你的开发者账原创 2017-10-31 16:52:58 · 19285 阅读 · 7 评论 -
iOS app 瘦身
本文译自:Guides and Sample Code 的App Thinning (iOS, tvOS, watchOS)App 瘦身App Store和操作系统通过将app定制到用户的特定设备中来优化安装, 这种瘦身优化,方便了我们更快地下载app,为我们的设备节省空间,提升了用户体验。下面我们讲讲app 瘦身的三个部分:切片(Slicing)、bitcode、on-demand resourc翻译 2017-05-27 11:41:01 · 1144 阅读 · 0 评论 -
ios运存机制
注意几个关键名词与概念就行:1.活跃内存2.非活跃内存3.墓碑机制4.RAM是内存,储存空间是外存先明白一个基本概念,iOS和Mac OS都是基于UNIX开发的系统,这和windows有着很大的不同,包括内存机制,这便是为何不能拿windows的使用习惯来看待iOS。另外要注意,iOS没有系统缓存。首先看看内存的意义何在。内存的介质就是高速闪存,它比外存的速度要快不少。原创 2016-10-13 13:08:06 · 2324 阅读 · 0 评论