iOS开发
梵尘yst
简单并不简单,不简单并非不简单。
展开
-
消除警告(升级后block警告)
升级xCode版本后 Block 出现大量的警告,通过方法一和方法二可以消除大量的Block相关的警告,同时下面也有一些消除第三方相关的警告。方法一Block implicitly retains ‘self’; explicitly mention ‘self’ to indicate this…的警告在Build Setting里面搜索Implicit retain of ‘self’ within blocks里面从YES设置为NO即可方法二This block declaration is转载 2021-12-11 09:50:09 · 2655 阅读 · 0 评论 -
iOS debug神器
推荐两款iOS 在手机端debugging 工具, 可以查看日志,UI控件查看,调试等。DoraemonKit , 啄木鸟(阿里巴巴开源),Flex(开源),iOSer debug的开发工具;DoraemonKit 滴滴开源: https://github.com/didi/DoraemonKitwoodpecker 阿里开源:https://github.com/alibaba/youku-sdk-tool-woodpeckerFLEX iOS调试神器:https://github.com/FLEX原创 2021-11-17 17:18:53 · 2463 阅读 · 0 评论 -
Key Commands must all have a Title, Key, ~~~~~~~~ its configuration.
Key Commands must all have a Title, Key, and Selector. Select each row in the table to check its configuration.选择 storyboard 右键选择 open as -> source code删除和keyCommands相关 :原创 2021-09-08 10:25:36 · 400 阅读 · 0 评论 -
ResponderChain 的对象交互方式 (适用多层嵌套点击事件传递)
最近看到一篇很好的博客分享一下:当tableView 或者其他的多层嵌套时需要事件处理怎么做呢? Block ,delegate, nsnotification,协议?UIResponder 对象交互方式上面几种方法我感觉这种方式效率高,这种方法可以不用层层传递。上代码:只需要一个 UIResponder 的 category 就行:.h@interface UIResponder (Router)- (void)routerEventWithSelectorName:(NSString *)转载 2021-08-11 10:27:38 · 253 阅读 · 0 评论 -
layer实现点击
区别:1 UIView继承自UIResponder类; CALayer直接继承 NSObject,这决定着layer不能响应事件;2 View和CALayer的Frame映射及View如何创建CALayer.一个 Layer 的 frame 是由它的 anchorPoint,position,bounds,和 transform 共同决定的,而一个 View 的 frame 只是简单的返回 Layer的 frame,同样 View 的 center和 bounds 也是返回 Layer 的一些属性。原创 2021-08-09 16:22:30 · 851 阅读 · 0 评论 -
查看真机的沙盒里面的内容
模拟器获取:获取沙盒路径 ——> 打开访达 ——> shift + G 输入获取的路径NSLog(@"---------%@", NSHomeDirectory());真机如何获取呢?1 xCode连上真机;2 window ——> Devices and Simulators3 下载 xx.xcappdata4 右键下载的文件 ——>显示包内容5 点开 appData里面就有了沙盒根目录有3个文件夹,分别是:Documents、Library、tmp原创 2021-07-28 10:18:13 · 605 阅读 · 0 评论 -
Xcode 截取手机屏幕并保存在mac上
有时需要手机截图,通过Xcode的截图可以省一步从相册传到mac的步骤:1 xCode连上手机;2 打开手机上需要截图页面,(可非Xcode上工程app)3 debug ——> view debug ——> Take Screenshot of iPone4 mac屏幕上 查看截图;5 水完了!????...原创 2021-07-28 09:50:15 · 607 阅读 · 0 评论 -
iOS 加载PDF(docx文件加载失败可以转为PDF再加载)
#import <WebKit/WebKit.h>@interface PrivacyViewController ()<WKNavigationDelegate>@property(nonatomic,strong)WKWebView *webView;@property(nonatomic,strong)UIButton *backBtn;@end@implementation PrivacyViewController- (void)viewDidLoad.原创 2021-06-03 14:57:47 · 1636 阅读 · 1 评论 -
Transporter 上传iPA上架
用xCode上传一直失败,将Transporter 应用现已上架 Mac App Store,但是需要注意的是,用户需要一个 App Store Connect / iTunes Connect / 公司账号才能使用 Transporter。(最近苹果服务器连接一直有问题,时好时坏,用xCode上传总是出现连接错误)上传步骤:1 打包导出二进制(正常的点击xCode上传,用Transporter需要选下面的导出api);2 下载并开发账号登录Transporter(登录账号构建一..原创 2021-05-13 15:26:38 · 2717 阅读 · 0 评论 -
链式编程
常见的编程方式有:链式编程 函数式编程 响应式编程前几天看Masonry 框架框架,虽然常常用 .语法很方便,但是一直都没去看看怎么实现的。链式编程:通过高阶函数以点为连接将多个函数连接在一起完成参数传递和复杂的操作!iOS中是通过getter方法来实现各方法之间的链式调用,特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)。jAVA链式编程的原理就是返回一个this对象,就是返回本身,达到链式效果。...原创 2021-03-18 11:46:48 · 1222 阅读 · 0 评论 -
第三方支付 3.1.1
最近上架项目中集成的第三方支付(微信,支付宝),上架时怕311.后来查了下相关资料,发现苹果放宽了服务类的审核(例如租房类,跑腿类,由线下提供服务或者硬件线上收费或者分期收费)但是对于游戏类虚拟货币,虚拟道具依然绕不过去。对于第三方支付类依然是企业账号分发(网上赌博,非法理财类都是通过企业账号)和applestore。applestore 相对靠谱一些,用户通过链接下和在appleStore上下载感觉是不一样的,相对来说appleStore上的给人的感觉更加安全和靠谱。以前通过内嵌H5绕现...原创 2021-03-06 17:42:35 · 362 阅读 · 0 评论 -
ERROR ITMS-90363 和 WARNING ITMS-90473
ERROR ITMS-90363关于UIBackgroundModes 这个一般在plist里直接删除就好了,如果需要找上架规则允许的方案 ,注意plist里的需要删除 test那个plist里有也需要删除,最好全局搜索一下;WARNING ITMS-90473 这个就是一个没注意导致的 前面的版本号,Bulid和下面推送里的要一致;...原创 2021-02-23 17:40:34 · 374 阅读 · 0 评论 -
浮点数导致lable黑边
起因:做表格分割线时(根据屏幕宽度几等分),出现了一条黑线,用层级图看完全没问题。找来找去才发现是frame导致的????。代码如下: //NSString *str = @"浮点数导致lable黑边"; ( tip:字数多时不明显,字数少时非常明显) NSString *str = @"aabbcc"; UILabel *la = [[UILabel alloc]init]; la.frame = CGRectMake(100原创 2021-01-21 14:28:30 · 177 阅读 · 0 评论 -
Too many arguments to function call, expected 0, have 2
#import <objc/message.h>或#import <objc/runtime.h>出现了:Too many arguments to function call, expected 0, have 2解决办法: tagres -> Build sSettings -> 搜索msg -> Enable... (YES 改为 NO) 在运行就好了关于isa ,runtime,等等自己去深挖吧????正常调用: [s...原创 2021-01-20 09:57:17 · 3028 阅读 · 0 评论 -
Showing Recent Messages failed to read asset tags: The command ‘x’exited with status 1. The command
Showing Recent Messagesfailed to read asset tags: The command `(cd /Users/yst/Desktop/xxDemo-master && /Applications/Xcode.app/Contents/Developer/usr/bin/actool --print-asset-tag-combinations --output-format xml1 /Users/xxx/Desktop/SimpleStructD..原创 2020-12-29 15:19:19 · 2017 阅读 · 0 评论 -
Xcode升级后 iOS 14 控制台无法打印
解决办法: targets -> setting -> Optimization 设置原创 2020-11-17 09:25:33 · 1273 阅读 · 0 评论 -
UITableViewCell中的 [cell addSubview:button]; 与 [cell.contentView addSubview:button];的区别
同事反馈有用户 手机升级到 14.2某个button 点击没反应了。一查发现button在UITableViewCell上并且是 [cell addSubview:button];的方式添加的。当把 [cell addSubview:button] 换成 [cell.contentView addSubview:button];可以正常点击了。那么问题来了,是什么导致14无法点击呢?苹果又整了什么幺蛾子 <手动狗头> UIButton *btn = [[UIButton allo...原创 2020-11-14 11:26:21 · 368 阅读 · 0 评论 -
libPods-xxx.a‘ is missing one or more architectures required by this target: armv7
链接库“xxx.a”缺少此目标所需的一个或多个体系结构:arm64、armv7解决办法(如上图):在Target-Build Settings-Excluded Architectures中添加以下代码EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64=arm64 arm64e armv7 armv7s armv6 armv8 EXCLUDED_ARCHS=$(inherited) $原创 2020-11-10 14:03:14 · 4288 阅读 · 0 评论 -
The file couldn’t be opened(无法打开项目,报错)
1 找到工程文件所在位置 xxx.xcodeproj 选择显示包内容(注意:不是 xxx.xcworkspace),打开第一个文件 project.pbsprojcommand+f 输入=== ,<<<< , >>>>查找有冲突的地方,删除掉没用的,注意要郑航删除干净不要留个字母逗号什么的。解决冲突即可;2 xCode版本不同导致的。有的用13,开发有的用14 。用十三开发的拉下了用十四开发的代码。有可能会出现。所以保持开发工具...原创 2020-11-04 19:24:38 · 5795 阅读 · 0 评论 -
DB Error: 1 “table ‘x x x‘ already exists“
sqlite 创建表后,再次运行报错DB Error: 1 "table '表名' already exists"造成这个问题是,数据库中已经有了这个表了,重复创建报错;CREATE TABLE IF NOT EXISTS '表名'() 与 CREATE TABLE '表名'()前者不会报错做了判断已存在不创建,后面是直接创建已存在在创建就会报错;所以啊尽量使用前面那个,我当时就是创建两张表一个用前面那个一个用后面那个,结果总以为都用的是前面的的,结果一通找bug;有时候细节很重要,..原创 2020-10-12 09:25:56 · 3153 阅读 · 0 评论 -
‘keyWindow‘ is deprecated: first deprecated in iOS 13.0 - Should not be used for applications that s
iOS 13.0 废弃 ‘keyWindow’iOS 13.0中已弃用“ keyWindow”:不应将其用于支持多个场景的应用程序,因为它会返回所有已连接场景的关键窗口我该如何显示对话框?这个用的还挺多之前项目中的一些弹框之类的很多都加在了keyWindow上了,一部分是模态控制器。以前是这么写的[[UIApplication sharedApplication].keyWindow addSubview: 自定义View];13.0禁用后怎么解决呢?也不难:OC UIWind原创 2020-09-30 10:20:59 · 7362 阅读 · 0 评论 -
如何获取暗黑模式的状态?
现在很多app都开始适配暗黑模式,如何获取状态呢?暗黑模式其实就是很早之前的阅读类app的黑夜模式,也就是换肤。不过苹果将它集成优化了一下而已。一般长时间浏览的App适合做暗黑模式。像某些APP一般就是查查东西用完即走的就没必要,毕竟做起来工作量还是很大的是平时的1.5倍。当然做的好的逼格会很高,最不好的减分。开始以为就是适配个图片和字体颜色,后来发现有点天真,毕竟已经好几百个页面,关键是队友还没注释。暗黑模式颜色字体主要有两种办法:1 宏定义封装方法2 plist文件存储色号两种方法.原创 2020-08-31 22:26:17 · 1581 阅读 · 0 评论 -
Build input file cannot be found: ‘/Users/xxx/Documents/XXX/Info.plist‘
移动了Info.plist位置发现报错:Build input file cannot be found: '/Users/yst/Documents/XXX/Info.plist'找不到路径这个在pch文件经常遇到;从新设置一下路径,然后 Clean 一下运行就行了;如图(图稍后补上????):build Seting 里搜索 info info.plist File设置路径(根据自己plist文件路径) $(SRCROOT)/TEST/Info.plist同样如果prefixH..原创 2020-07-29 10:54:09 · 7973 阅读 · 0 评论 -
GitHub 搭建测试分发平台
需要的东西:需要iPa 文件 ,manifest.plist ,57 * 57 和 512 * 512 两张iconhttps的服务器 (github搭就不用了 后面指向manifest.plist 和 ipa的必须是https 也有说 ipa不用https 待验证)一个可以外网访问的网页主要分为以下几步:一 账号以及打包;打包时勾选红框选项 会生成manifest.plist开始不知道ipa 和图片网址 可以随便填 网址后期修改:二 github配置;...原创 2020-06-30 16:49:22 · 838 阅读 · 0 评论 -
Github无法显示图片问题解决方案
本来想利用github搭个测试分发平台,结果照片不显示,文件拿不到!记得前段时间时间还可以后来就不行了,尴尬癌犯了,非得把它搞出来,一查还真有解决方案:1 Mac终端sudo vi /etc/hosts2 会提示你输入开机密码 ->输入密码3 shift + i 进入编辑模式 并将下面的内容拷贝进去 然后ESC 再 :wq (这步操作同 pods)# GitHub Start140.82.114.4 github.com140.82.114.4 ...原创 2020-06-30 15:20:52 · 1924 阅读 · 0 评论 -
加载大量图片内存暴增导致闪退 Terminated due to memory issue(内存暴增SDWebImage加载高清大图崩溃)
上传图片一定要压缩,一定要压缩,一定要压缩。(目前手机拍摄的图片一张几M,上传后不压缩,如果几十张一块加载展示时内存画面有点美)下载大量图片时一定要注意内存问题。N多张图直接快爆掉:如何破呢?1 上传时除了需要特别高清以外的图适当压缩;2 缩略图模式。先展示一张缩略非高清图,点击在展示大图;3 下载时注意主要还是压缩图,减少内存消耗,及时清除缓存或者不缓存。解决办法无非就那么几种,参考下面几篇博客(为了少点重复内容,我就懒得抄了):图片大小以及清晰度影响 :https:.原创 2020-06-02 19:12:07 · 2106 阅读 · 0 评论 -
Lable 显示 Html 标签 (小技巧)
使用NSHTMLTextDocumentType从HTML创建的NSAttributedString;这种方法有利有弊。大概看了一下 ,坑多。我感觉还好吧。像下面的第一段的富文本,如果拼起来会疯的,用下面方法。很容易搞定。-(void)testHtmlText{ UILabel *htmlLa = [[UILabel alloc]init]; htmlLa.frame = CGRectMake(100, 150, 200, 200); [self.vie.原创 2020-05-22 16:25:11 · 585 阅读 · 0 评论 -
记录最近一次上架遇到的问题(二进制错误,2.5.4,登陆无注册入口,地图,后台音乐等等)
随着最近苹果的审核越来越严,里面稍有违规及被拒。先推荐两个预审平台:1weTest :https://wetest.qq.com 预审可以检测大概的问题配合检测出的问题自查2 岩鼠 :https://yanshu.effirst.com/product/pretrial/overview首先需要检测是否有违规API,当调用苹果明确禁用的一定会被拒。二进制错误: 这个最多的问...原创 2020-04-07 14:38:42 · 446 阅读 · 0 评论 -
LaunchScreen 出现显示不全,白屏 ,黑屏 的处理方法
iOS13SDK的 App将必须提供LaunchScreen,LaunchImage将被废弃,在适配中出现几个小问题:第一步 设置使用LaunchScreen:第二部 在plist.info文件中添加Launch screen interface file base name选项:第三部 : 选择一张启动图(名字最好不用LaunchLaunchImage以免出错)...原创 2020-03-23 14:41:13 · 6189 阅读 · 0 评论 -
iOS 新建工程打开黑屏(SceneDelegate适配)
https://juejin.im/post/5d8af88ef265da5b6e0a23ac刚才新建了一个工程,打开黑屏! en en en ....什么鬼?一看工程中多了一个SceneDelegate 这个又是个什么鬼?看了一下目前没什么用,处理掉,????????????。Xcode 11新建工程在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出现黑屏现象...转载 2019-10-23 13:58:58 · 4541 阅读 · 0 评论 -
Failed to extract git version from `git --version`
终端输入: xcode-select --install如需升级ruby 参考:https://www.jianshu.com/p/d715a9a062d0原创 2019-10-15 16:57:16 · 2874 阅读 · 0 评论 -
iOS 引导页面的做法 第一运行出现 以后运行不在出现
iOS 引导页面原创 2016-03-05 21:53:38 · 903 阅读 · 0 评论 -
CocoaPods 宝典
//配置环境//在终端输入 $ 后代码 注意不带$ 号//1 配置方法 1.打开终端,输入$ gem sources --remove https://rubygems.org/等有反应之后再敲入以下命令$ gem sources -a https://ruby.taobao.org/为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:$原创 2016-03-18 12:51:05 · 326 阅读 · 0 评论 -
几道面试小题
1.代理的优缺点,你在什么情况下会用到代理?1)优点:1.代理在自定义控件方面具有其绝对的优势(AFN)2.在一个控制器中可以定义定义多个不同的协议,每个协议有不同的delegates;3.非常严格的语法。所有监听到的事件必须是在delegate协议中有清晰的定义。2)缺点:1.需要定义很多的代码;1)协议定义;controller的delegate属性;3)在delega原创 2016-05-16 13:51:59 · 351 阅读 · 0 评论 -
GCD 函数大全
CD提供两种Dispatch Queue, 分别为Concurrent Dispatch Queue 和 Serial Dispatch Queue.Serial Dispatch Queue 使用一个thread。 Concurrent Dispatch Queue 使用多个thread。 获取Dispatch Queue: 0)dispatch_queue_create翻译 2016-05-18 14:33:26 · 657 阅读 · 0 评论 -
ios isa 是什么鬼???
每个Objective-C对象都有一个隐藏的数据结构,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。这个isa到底是什么呢?官方介绍是这样的:Every object is connected to the run-time system through itsisa instance variable, inherited from the NSOb...转载 2016-05-18 14:40:38 · 5100 阅读 · 3 评论 -
could not find developer disk image解决方法
在使用Xcode进行真机调试的时候,有时根据真机的系统不同,会出现could not find developer disk image 错误,这是由于真机系统过高或者过低,Xcode中没有匹配的配置包文件,我们可以通过这个路径进入配置包的存放目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/De转载 2016-05-31 23:07:02 · 440 阅读 · 0 评论 -
KVC、KVO、NSNotification、delegate 总结及区别
1、KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。第一、方法定义NSKeyValueCodingprotocol第二、setValue:forKey是如何访问属性值的KVC方法的实现get、set方法及实例变量的访问,K原创 2016-06-01 10:54:54 · 698 阅读 · 0 评论 -
setter=method @property(getter = getMethodName, setter = setMethodName) Object *obj;
@property 修饰符什么情况使用 weak 关键字,相比 assign 有什么不同?怎么用 copy 关键字?这个写法会出什么问题: @property (copy) NSMutableArray *array?如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?@property 的本质是什么?ivar、getter、setter 是如何生转载 2016-06-01 12:54:52 · 1141 阅读 · 0 评论 -
Xcode真机调试bug集(有待更新)
Xcode真机调试出现“*** is busy: Processing symbol files”Xcode真机调试出现“* is busy: Processing symbol files”引子: Xcode真机调试的时候,点击运行,出现:*** is busy: Processing symbol files。解决方法: 1、尝试重新拔插测试设备。 2、如果“1转载 2016-06-01 13:10:21 · 860 阅读 · 0 评论