iOS常识
偏执的磊子
不曾停下脚步
展开
-
Xcode15+iOS17适配以及遇到的问题
今天更新了 Xcode15,但是一直显示 no fund iOS17 sdk,根据提示下载后提示安装失败,试了几次还不行,就去官网查看一下情况,苹果已经给出。出现这个之后会提示验证,验证通过重启 Xcode 即可。当然网络也是一方面;原创 2023-09-19 17:31:42 · 13249 阅读 · 6 评论 -
cocoapods私有库的创建及使用
repo:资源库,通常我们叫它索引库,repository的缩写,pod自带一个trunk,以前是master,今天就是要创建如果我们自己的索引库,索引库里可以存放很多podspec文件,每个文件就可以获取一个库。--sources:需要引⽤的spec,默认只依赖master,如果当前pod依赖了私有库,需要将其对应的spec包含进来,不然会报找不到对应库的问题。随着团队的扩充,项目的增多,公司级私有库势在必行,其中基础库的构建尤为重要,话不多说进入正题。私有库的使用一定要加上私有索引库的远程地址。原创 2023-03-17 21:49:00 · 1230 阅读 · 0 评论 -
Xcode自动补全功能失效
最近有开始用Xcode,发现自动补全功能又又又失效了,以前的方式已经不能使用。原创 2022-07-22 16:35:16 · 1253 阅读 · 0 评论 -
iOS 挑选一种合适自己的打包方式及Fastlane自动打包上传
最近手头项目有点多,经常打包发布很繁琐,挑选出一种能提高工作效率的方式。目前大家常用几种打包方式1.Xocde基础打包且上传app strore,这种不依靠其他插件只要按照说明一步一步next就可以完成操作,这个不必多说;2.application loader:先用Xcode打包出Ipa文件在用此工具上传,一般公司运维都是使用这种方式,就是开发和发布分离,方便管理;3.altoo...原创 2019-12-02 13:22:07 · 321 阅读 · 0 评论 -
iOS和js的交互以及WebViewJavaScriptBridge 基本使用
https://www.jianshu.com/p/d12ec047ce52转载 2019-11-07 14:38:15 · 208 阅读 · 0 评论 -
iOS10 优化APP首次安装网络权限提示方案
我刚经历了一场末日(停电),特别是在你想写文档的时候。。。言归正传,今天的问题是解决iOS10系统下首次按钮APP弹出的网络权限提示所带来了问题以及优化。起因 查了相关文章知道由于大陆工信部出台的新规指出,应用在未经用户允许的前提下,系统不能授予其使用联网、获取定位的功能。Apple在iOS10系统中加入了关于应用使用数据的授权弹窗提示,用户在iOS系统及以上系统中第一次打开应...原创 2017-11-26 12:10:03 · 40140 阅读 · 3 评论 -
iOS11项目适配 UIScorllView下移和导航栏返回按钮偏移
相信这段时间大家都在适配iOS11,我下面就是记录一下我适配的两个问题;关于iOS11新出的安全区域、navigation的层级改变等都不在赘述,网上一大堆,下面就看问题;1.我的项目首页是一个全屏的collectionView,导航条是自定义view(大家懂得),滑动的时候导航条透明度改变。在iOS11上出现collectionView下移了20,把刷新控件漏出来了;这个是因为iOS11原创 2017-09-26 13:27:47 · 1948 阅读 · 0 评论 -
iOS Block使用注意
声明我们在声明block的时候要记得使用copy修饰;循环引用在操作block回调的时候要避免吗循环引用,我们要先声明__weaktypeof(self) weakSelf =self;原创 2017-05-08 09:50:49 · 608 阅读 · 0 评论 -
UIWebView的换行问题
最近在开发中遇到一个bug,就是在用UIWebView显示html的时候没有自动换行,这是为什么哪?锁定问题1.我先检查了代码,确定没有问题;2.我又查看了安卓是否也是这样,答案是肯定的。这样问题就出来了,那就是返回的html串,我打印了结果content = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa原创 2017-03-20 17:07:08 · 1752 阅读 · 0 评论 -
ScrollView向下偏移64以及automaticallyAdjustsScrollViewInsets的使用
最近又开始新项目的开发,在UI架构的时候又出现了这个问题:每个APP可以说都有NavigationController,在Nav之内的Controller上首个控件如果是UIScrollView则会出现向下偏移64的问题,今天不知道怎么就是没想起来这个钻到牛角尖了,搞了半天才突然发现解决方法。原因在iOS7之前是没有这个问题的,后来苹果更新出自动适配,在控制器里增加了一个新属性automa原创 2017-02-13 15:35:48 · 3090 阅读 · 0 评论 -
Xcode多target下配置Pods文件以及产生的编译错误:ld: library not found for -lPods
近期一个项目因为要分裂出一个新项目,新项目因为和原项目很类似就是用了多Target模式。起因项目要使用百度定位,为了方便我使用pod添加,很快在ATarget下就完成了开发,但是在切换到BTarget下运行成却出现了错误,说是找不到百度SDK,这就郁闷了,我根据错误在网上查找寻找答案。多target下配置Pods文件很显然这个问题已经有同学遇到过了,我参考了这位同学的博客,利用pod的abstra...原创 2018-02-08 18:37:59 · 2360 阅读 · 0 评论 -
第三方库文件找不到的解决方法
使用pod添加第三方库在使用的时候找不到文件有两种解决方法:1).选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项新增一个值"${SRCROOT}",并且选择\”Recursive\” ;2).尝试pod Install后,Product -> Clear Build Folder(按住option键)清理一...原创 2018-03-01 16:42:37 · 4578 阅读 · 0 评论 -
pod警告:The `xxx [Release]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Sup
今天在更新pod的时候出现几个警告,虽然不影响项目编译但是还是看着不舒服。Pod installation complete! There are 20 dependencies from the Podfile and 21 total pods installed.[!] The `MIT_Endorsement [Debug]` target overrides the `PODS_RO...原创 2018-03-06 10:31:03 · 3093 阅读 · 0 评论 -
TableView+TextView适配
项目里要增加一个可输入且动态调整高度的界面,我使用UITableView+UITextView很快的就实现了,但是在交给测试的时候发现了问题:在当前界面如果选择屏幕的下半部的Cell输入会出现每次输入一个字符TableView就会弹跳一下,就是一上一下,这个问题让我烦恼了一天,当然最后还是被我解决了。这个功能需要注意三点:1.输入文本时动态的改变cell控件以及cell高度的刷新;2.键盘遮挡当前...原创 2018-04-08 12:02:20 · 587 阅读 · 0 评论 -
转载记录Xcode 真机测试 iOS版本支持包
使用方法需要哪一个iPhone系统的支持包,下载解压,放进去就可以了,然后插入你的手机,等Xcode解析好你的手机文件就可以真机运行了。支持包放置位置:点击应用程序-》选择Xcode-》Contents-》Developer-》Platforms-》iPhoneOS.platform-》DeviceSupport原作者连接: https://www.jianshu.com/p/1a33e36c4b...转载 2018-06-21 10:26:29 · 852 阅读 · 0 评论 -
iOS8系统下,tableHeaderView遮挡第一个cell
今天做项目遇到一个很奇怪的问题,就是在iOS8系统下tableHeaderView遮挡第一个cell,这个问题纠结的好一会。其实就是在设置self.tableView.tableHeaderView = self.titleView; 因为现在的代码习惯,都是先添加在设置frame或者约束。iOS8系统下要先设置frame或者约束,否则就会出现这种情况...原创 2019-12-20 17:25:49 · 704 阅读 · 0 评论 -
Xcode10.3 项目XIB报错解决方案
报错信息:/Users/zhaiyulei/Git/yxt/yxt/yxt/Supporting Files/Base.lproj/LaunchScreen.storyboard:-1: Failed to find or create execution context for description '<IBCocoaTouchPlatformToolDescription: 0x7...原创 2019-07-31 10:57:42 · 1925 阅读 · 1 评论 -
Xcode里的几个名字和标识符的说明
Bundle name:APP安装到手机里的文件名字;Bundle display name:APP在手机界面上展示的名字(APP名字);Product name/Executable file:是执行程序的名字,就是你创建工程的时候写的名字(工程名字);Bundle identifier:应用包名,程序的唯一标识符;原创 2016-12-29 14:40:51 · 1653 阅读 · 0 评论 -
pod升级以及更新不到最新的第三方库解决方法
最近因为大量的第三个库适配HTTPS,我在更新中发现两个问题,写出来分享给大家。1.cocoapods版本升级到最新版;2.搜索不到最新的第三方框架(比如:官方SDK1.2,pod的搜索出的是1.1,也更新不了);升级先看自己的pod版本Book-Pro:DDTGNew zhaiyulei$ pod --version1.1.1升级pod $ sudo ge原创 2016-12-26 17:04:25 · 8093 阅读 · 1 评论 -
iOS适配HTTPS、开启ATS让你的域名更安全
马上要到苹果给出的到期时间了,适配HTTPS提上了日程。苹果在2016年6月份的发布会上提出2017年的1月1日,所有AppStore的APP必须要开启ATS(也就是使用HTTPS)。适配HTTPS其实前端并不需要很多的工作量,下面我就说一下我的适配之路,供大家参考。开通SSL如果是自己测试可以申请免费的,公司用的话最好是购买付费SSL证书,这一部分后台人员就可以搞定了。客户端原创 2016-11-28 14:17:59 · 3517 阅读 · 0 评论 -
iOS:SVN出错 Description : The working copy is locked due to a previous error.
Description : The working copy is locked due to a previous error.情景1:我上传demo,大概因为网速原因,上传很久都没有结束,我就关闭重新上传,结果不仅无法上传,也无法更新,错误提示被锁。情景2:我本地我的文件升级cocoapods导致不支持iOS7系统,但是我想返回到没有更新以前就很麻烦,可以直接check一份新的原创 2016-03-18 14:06:48 · 583 阅读 · 0 评论 -
iOS多线程总结
今天没什么事做就对iOS的多线程做一次总结,纯属个人看法,初学者可以参考下。对于多线程我想无论是面试还是实际开发大家都不会陌生;严格意义来讲iOS多线程算是4种:PThreadsNSThreadGCDNSOPeration/NSOperationQueue;PThreads这个是基于C语音定义的POSIX Threads(简称PThreads)标准线程,但是对于iO原创 2016-04-01 11:14:43 · 737 阅读 · 0 评论 -
iOS打电话
打电话的方法有三种,网上说的人很多我这里只写一种大家推荐使用的UIWebView *webView = [[UIWebView alloc]init]; [webView setBackgroundColor:ClearColor]; [self addSubview:webView]; NSURL *url = [NSURL URLWithStrin原创 2016-05-10 14:12:39 · 532 阅读 · 0 评论 -
Bitcode的使用
Bitcode刚出来的时候查过相关的文档,知道只要是iOS程序就把Enable Bitcode选择NO,因为那个时候第三方SDK都没有支持Bitcode包,也就没有细看,今天我们来看看什么是Bitcode以及它的用法。Bitcode是什么查看的官方文档,在APPDistribution Guide–App Thinning (iOS, watchOS)一节中,找到了下面这样一个定义:原创 2016-05-03 14:56:42 · 7759 阅读 · 0 评论 -
delegate和block的选择
block和delegate乍看上去在作用上是很相似,但是关于它们的选型有一条严格的规范:当回调之后要做的任务在每次回调时都是一致的情况下,选择delegate,在回调之后要做的任务在每次回调时无法保证一致,选择block。block缺点:它会对block块内部的所有对象引用计数加一,使用完或者block置nil后才消除,我们可以使用weak self来解决,但是还有一个问题是它会延迟转载 2016-04-19 13:40:12 · 986 阅读 · 0 评论 -
pch文件的创建和使用
我们有时会因为不停的重复添加常用的文件头或者宏而烦恼,增加了我们无用的代码量,pch应运而生。 在Xcode6之前会我们创建新工程会默认创建pch文件,但是Xcode6之后apple取消了这一默认项,我们要使用pch的话就用手动创建了。 创建:1.点击finishtargets项要选中你所要使用本文件的对象 写好名字点击create2.创建好了还要添加文件路径:原创 2015-09-18 15:13:06 · 786 阅读 · 0 评论 -
pch文件的使用
最近要开发先项目,重新整理一下pch文件的排版以作记录,我并不推荐大量的使用宏,大家有更好的使用方法可以交流交流。我们在pch里经常会定义一些宏大体上有三点好处:可以更高层级上控制程序源码本身和编译流程提高代码重用性,节省工作量的叠加提高代码可读性大家知道宏定义是编辑器的预处理,而正是这个原因赋予了宏很强大的功能和灵活度。pch文件是在预编译的时候执行的,这样pch原创 2016-04-22 14:50:34 · 704 阅读 · 0 评论 -
系统升级 pod命令失效的解决(转)
(转自)http://blog.csdn.net/pjk1129/article/details/49356847之前为了升级XCode至7.3,就升级了操作系统,没想到因此pod命令就失效了。以下为原文:升级OS X EI Capitan之后,发现CocoaPods的pod无效了,运行pod后显示:"pod: command not found"的转载 2016-06-08 00:58:09 · 1575 阅读 · 0 评论 -
iOS ARC下的内存管理问题以及解决办法
很多同学因为没有经历过使用手动引用计数来管理内存,一直在ARC下愉快的开发导致对iOS内存管理方式的不理解,巧哥有篇专门说明iOS内存管理,我也是记录学习中的点滴,共勉之。我刚接触iOS的时候ARC已经出现,但是大家对这种黑科技都保持怀疑态度,大部分人还是在使用手动管理内存,后来Xocde默认ARC模式才开始快速推广并被大家所认可。ARC模式下虽然很好的解决手动管理内存的问题,但是还是有瑕原创 2016-08-04 14:00:37 · 1683 阅读 · 0 评论 -
Swift 学习点(一)懒加载
对于刚接触Swift的同学,写东西的话首先遇到的问题应该就是懒加载,这个和OC李的单例有相似之处都是在使用的时候调用仅此一次初始化。在Swift里懒加载都是以闭包语法存在private var testImageView: UIImageView = { //这里执行操作代码 let imageView = UIImageView() ret原创 2016-08-05 12:31:39 · 5456 阅读 · 0 评论 -
UIScrollView+Masonry解决添加带ScrollView上的view不显示
以前遇到过这关问题查了一下资料解决了就没在意,今天又出现这个问题做下记录加深记忆,也给大家分享一下。问题:我们使用Autolayout来布局UIScrollVie,添加的view不显示,打印log会看到view的宽和高是0。比如:__weak typeof(self) weak_self = self; [self.mainScrollView mas_makeConstrai原创 2016-09-13 14:11:41 · 7526 阅读 · 1 评论 -
iOS automaticallyAdjustsScrollViewInsets和translucent的详解
iOS开发也有段时间了,但是对automaticallyAdjustsScrollViewInsets和translucent混合使用还是有一些不清晰,今天我带大家一起来实践、学习,有疑问请回复哦。 private func hideNavigationBar(showBgImage: Bool) {// automaticallyAdjustsScrollViewIns原创 2016-08-24 15:17:25 · 3964 阅读 · 0 评论 -
AFNetworking+GCD处理并发问题
我们在编程的时候会经常会出现这样的需求:同时请求几个接口回调成功以后在统一刷新UI,解决这个问题的方法有很多今天我们就说明下GCD下解决的方式。GCD的leave和enter 我们利用dispatch_group_t创建队列组,手动管理group关联的block运行状态,进入和退出group的次数必须匹配。//1.创建队列组 dispatch_group_t group = d原创 2016-09-18 10:38:30 · 5143 阅读 · 0 评论 -
Xcode8的一些变化
今天刚升级到Xcode8,先运行项目跑了一下,果不其然苹果又偷偷修改东西了,在网上查了一下,苹果强制要求APP访问用户信息必须添加安全提示否则会直接崩溃。1.权限问题This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app'原创 2016-09-26 11:16:48 · 1430 阅读 · 0 评论 -
Xcode8打包以及上传代码不能构建版本问题
大家最近都在升级Xcode,每次Xcode升级都会给我们带来一些小插曲,这次也不例外,Xcode8打包发布版本出现问题一般都是这两个点:1.隐私信息访问提示未设置;2.Capabilities模块下的Push notifications功能没有开启。隐私信息访问提示未设置从Xcode8开发的程序必须把访问权限提示,不添加的话测试的时候点击对应功能会闪退,发布会出现构建不了版本。把程序里原创 2016-09-28 10:04:21 · 2242 阅读 · 0 评论 -
在Swift里两个枚举值一起使用的方法
在OC里我经常会用到两个枚举属性一起当成参数传入方法里使用:[label addObserver:selfforKeyPath:@"text"options:NSKeyValueObservingOptionNew |NSKeyValueObservingOptionOldcontext:nil];但是在Swift里这样写的话就会报错,原因并不是Swift不支持这样原创 2016-10-25 17:46:36 · 3129 阅读 · 0 评论 -
iOS版本号说明 Version和Build的区别
好久没写东西了,今天遇到一个问题记录一下;version我的理解就是大版本号 build是小版本号;比如version是1.0 build是1.0.0, 如果是因为bug或者需求少而需要更新版本的话我们就可以用build:1.0.1 大家可能都遇到过这样的情况,在提交审核的版本还没有审核通过我们发现了bug,这个时候就要重新提交,但是vsersion不能变,我们最好一不要出现跳版本原创 2016-01-25 13:58:36 · 10963 阅读 · 0 评论 -
iOS app在AppStore的各种状态说明
Waiting for Upload (Yellow) Appears when you’ve completed entering your metadata, however, you have not finished uploading your binary or have chosen to upload your binary at a later time. Your app翻译 2014-09-09 14:11:41 · 1228 阅读 · 0 评论