iOS码农
iOSTerry
码农
展开
-
Xcode编译项目卡顿
Xcode14控制台报错:warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance.第三步出现如下弹窗等待自动修复完成即可。第二步重启Xcode运行项目。原创 2023-02-21 13:32:20 · 1069 阅读 · 0 评论 -
iOS开发AppleDeveloper中给别人授权开发者权限后,对方一直显示不了我的开发账号team
后来通过排查发现,我的开发者账号身份是个人不是组织!个人身份的开发者账号不允许多人协作开发,授权的加入的开发者、App管理等均无证书相关权限,所以无法真机开发我账号相关项目,只能使用配置导出证书的方式来让别人开发。这时我们通常要发邮件邀请别的用户为开发者或者app管理就可以开发我们自己的项目了。当然是可以的,我们只需要在Apple Developer中找到“会员详细资格信息”,点击“更新您的信息”(打码的是客户自己的team,我授权的team未显示出来)导致客户无法使用他的账号来协作开发我的代码。原创 2023-02-17 14:23:14 · 2469 阅读 · 0 评论 -
iOS开发怎么使用Xcode搜索项目中所有的中文
由于我们项目要海外化,客户要求App中不得包含有中文的语言,所以我们需要把项目中所有中文都转换问英语,那么怎么操作呢?swift输入: "[^"]*[\u4E00-\u9FA5]+[^"\n]*?oc输入:@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?通过调研发现xcode支持正则表达式搜索。原创 2023-02-17 13:45:35 · 1210 阅读 · 0 评论 -
SourceTree 如何忽略已跟踪文件
这时我们需要使用命令$ git rm -r --cached .文件本地路径,移除本地文件追踪,对应文件就不会进入git版本管理了,在修改对应文件就可以点击忽略或者编辑gitigore文件生效啦。原创 2022-12-30 10:25:28 · 914 阅读 · 0 评论 -
Mac电脑下好用的桌面软件--Irvue
壁纸软件推荐原创 2022-12-29 10:15:04 · 594 阅读 · 0 评论 -
Fastlane实现一键自动打包(多Target 多开发者账号)
fastlane iOS自动打包原创 2022-04-11 16:13:21 · 3526 阅读 · 0 评论 -
iOS没有项目工程时,怎么查看手机上app对应日志
在我们日常跟踪app使用时,有时需要查看从appstore下载下来的app对应日志,怎么查看呢?1.使用数据线将手机和电脑连接。2.打开Xcode--Window--Device and Simulations,然后点击Open Console,如图:3.打开控制台,选择要查看日志的设备,点击开始,如图:4.此时,在手机上运行对应app就能看到app的开发日志了。...原创 2022-02-11 11:09:59 · 2625 阅读 · 0 评论 -
iOS多target时怎么对InfoPlist进行国际化
国际化InfoPlist文件必须创建名称为InfoPlist.strings的文件,那么多个target时怎么进行国际化呢?一、首先我们在项目根目录创建不同的文件夹对应多个target,然后在对应文件夹下创建每个target对应的InfoPlist.strings如图:二、我们在InfoPlist.strings右侧勾选设置,该文件对应的targetMembership,这样每个InfoPlist.string都会找到对应target的info.plist文件,我们就可以在对应的InfoPlis原创 2021-07-07 14:45:37 · 715 阅读 · 0 评论 -
关于Xcode打包为Generic Xcode Archive 以及 Xcode打包按钮灰色的解决方法
近日我在项目打包时遇到了无法生成ipa包的问题如图:Archives后生成的是Generic Xcode Archive,且无法上传到APP Store,经过网上查阅资料,发现原因是项目依赖的子工程,有部分文件设置成了Public或者Privacy,我们在有子工程依赖的项目中,打包前一定要确保,子工程Target 中Build Phases选项中的Heades选项中所有文件都在Project里如图:很明显我的项目中有个mssdk的文件是在public中,我把它拽入到Project中,原创 2020-12-07 09:26:49 · 1495 阅读 · 0 评论 -
iOS 14 适配方案
1、升级XCode后如果模拟器跑不了了,可能需要加一个x86_64架构如图:2、不在cell的contentView上addSubview的会被contentView挡住如果有用cell addSubview 的请替换成cell.contentView addSubview3、IDFA隐私加强IDFA默认关闭,需要向用户申请获取权限,需要在info.plist中明示用户申请权限:key : NSUserTrackingUsageDescriptionvalu...原创 2020-09-28 10:05:39 · 691 阅读 · 0 评论 -
iOS开发使用AFN来POST格式为form-data的接口
背景:在一次开发中,有一个接口,发生了一下问题,我们按照以往的经验,使用AFN 的post请求来请求接口,把参数设置到字典中,然后传递给post接口的parameters中,如下图:其中bodyParams为要传入的参数字典接口虽然通了,但是一直报参数错误,于是我让后台debug了一下,他们说收到的参数全是nil,后台给发了接口的详细调试信息,如下图:##一看,原来参数都是Form-Data格式,也就是参数都是放到表单里的。于是,我又查阅资料基于AFN重新封装了一个form-data格式的接口,代原创 2020-07-22 09:39:16 · 2027 阅读 · 1 评论 -
Xcode11下,使用Masonry产生大量instance method conflicts with same method from another category 警告(1w+)
产生原因:主要是mastory里view+MASShorthandAdditions,以及NSArray+MASShorthandAdditions,这两个类别,把方法声明和实现都写到.h,文件了,在xcode11里这么写会造成多个target 引入 mastory时产生大量 instance method conflicts with same method from another c...原创 2020-03-12 11:42:32 · 2032 阅读 · 2 评论 -
iOS 13 怎么去掉UITabbar顶部黑线
代码如下: //去掉tabbar黑线,其中self是一个UITabbarController,imageWithColor是由颜色生产图片的方法 if (@available(iOS 13.0, *)) { UITabBarAppearance *apperance= self.tabBar.standardAppearance; apperan...原创 2019-12-10 11:48:39 · 1076 阅读 · 0 评论 -
Git如何修改已经提交的注释说明
在我们使用git时偶尔会忘了给提交添加注释或者注释写错了,这时怎么修改呢?有两种发生的情形。情形一:已经commit到本地仓库,还没有push到远程解决方法://查看提交文件,里面包含注释和变更内容使用git commit --amend此时会打开最近一次本地commit的信息,此时是以vi编辑器的形式打开啊。我们按下i建进入文本编辑模式,然后把想要修改的提交信息no...原创 2019-10-28 22:04:00 · 12304 阅读 · 2 评论 -
ios开发中自定义UIAlertView;
在iOS 中我们有许多情况下需要用alertView,系统的UIAlertViewUI并不总是符合设计要求,我们需要自定义一个。在开发中我才用继承UIWindow的方式自定义,UIWinow是屏幕展示UIViewController的桥梁,在APP入口时Appdelegate中我们能看到我们需要设置self.window.rootViewConroller才能看到我们的界面。下面来看代码:原创 2018-01-09 18:57:27 · 730 阅读 · 0 评论 -
关于使用UIAlertView会调用applicationDidBecomeActive的问题解决
我们在开发app指纹解锁和手势解锁时有需求:只要app启动时从后台进入前台就要弹出手势解锁界面或者指纹解锁界面。在开发过程中我第一反应是使用applicationDidBecomeActive这个方法来判断app进入前台以及写入弹出界面方法。applicationDidBecomeActive是当应用程序全新启动,或者在后台转到前台,完全激活时,都会调用这个方法。如果应用程序是以前运行在后原创 2018-02-01 15:00:14 · 2544 阅读 · 1 评论 -
ios中关于uiscrollview自动上移动被导航栏遮盖
原因:controller里有个automaticallyAdjustsScrollViewInsets这个方法,默认为yes,当它为yes时如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scroll占据整个视图,又不会让导航栏遮盖。当controller上的第一个子视图不是scrollview以及其子类的时候,就会取消内边距。此时原本全转载 2017-11-20 17:26:00 · 2532 阅读 · 0 评论 -
iOS开发中把Charts集成到oc项目中
Charts是GitHub上一个10000stars的图表绘制框架,在许多金融类APP中我们会用它来绘制各种图表,下载地址:https://github.com/danielgindi/Charts.但是在oc项目中引入它比较麻烦:1我们先下载项目,在它的项目目录下吧Charts.xcdoeproj和Source和Tests这几个文件夹或者文件拖入到我们开发项目中如图:2然后吧Char原创 2017-12-27 17:56:07 · 4384 阅读 · 0 评论 -
iOS 企业签名 ipa 包要求
需要的ipa包,是adhoc生产的原创 2017-12-11 22:33:04 · 2993 阅读 · 0 评论 -
解决webapp中使用cordova调用本地相册,在ios设备上无法显示图片的问题
anjular.js不能调用原生app相机,遇到通过cordova的插件cordova-plugin-camera来调用1我们先在项目中引入插件cordova plugin add cordova-plugin-camera把插件安装到项目中2在html文件中布局点击按钮调用相机或相册关键代码如下:div data-role="page"> div data-role="原创 2017-08-30 17:09:14 · 6821 阅读 · 0 评论 -
iOS下怎么对项目内容进行国际化
在开发项目中有事需要多语言支持,在对应手机环境下显示对应的语言,这时我们需要对项目国际化。首先新建一个stings文件命名为localizable如图:然后打开项目Targe-Info-Localizations中添加要支持的语言如图然后选择刚才创建的stings.文件完成后点击stings文件,查看右侧工具栏会多出一个你支持的语言选项如图:点开Loca原创 2017-08-28 11:55:02 · 809 阅读 · 0 评论 -
ios单例模式的实现
单例模式我理解为单例类的实例对象是唯一的。参考网址:http://www.cocoachina.com/ios/20160907/17497.html原创 2017-07-14 22:08:46 · 377 阅读 · 0 评论 -
iOS提审"Potential Loss of Keychain Access.问题
WARNING ITMS-90076: "Potential Loss of Keychain Access. The previous version of software has an application-identifier value of ['A8M9REA9VF.com.xdjy100.xdsxy'] and the new version of software being s...原创 2018-07-30 10:12:21 · 3062 阅读 · 0 评论 -
ios使用for循环根据个数居中创建一排按钮的代码实现
首先根据数组中的元素个数计算这排ui的其实点x,其中kScreenWidth/2是屏幕中间,currentHandler.iconCount是数组,padding是控件之间的间隔,然后遍历数组创建控件时从计算好的起点开始累加每个控件的宽度和间隔就好了代码如下:CGFloat beginX=kScreenWidth/2- (currentHandler.iconCount*30+原创 2017-06-09 19:40:09 · 1516 阅读 · 0 评论 -
iOS 开发中怎么让UITextField 的placeHolder 文字自适应宽度。
在项目中我们很多情况下需要让文字自适应宽度,如果文字过多,则适当缩小文字font。比如UIlabel 使用adjustsFontSizeToFitWidth设置为YES来让文字自适应,UITextField也是通过adjustsFontSizeToFitWidth来设置文字自适应,不过要想让这个属性生效,还需要设置 [surePwdTextView.myTextField setMinimumFo...原创 2018-04-11 10:16:52 · 2495 阅读 · 0 评论 -
ios开发中如何让父视图透明化,不影响子试图的ui颜色
使用FatherView.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.5];原创 2018-04-11 16:55:32 · 854 阅读 · 0 评论 -
iOS 开发中对带小数的数值进行四舍五入
在iOS 开发中我们很多情况需要对小数点进行处理,一般情况下四舍五入就可以,但是有些地方需要只舍不入,或者只入不舍。1下面我们先看只舍不入:比如 float x=0.667,我们想保留两位小数但不进位,目标值为0.66,我们使用如下方法:-(NSString *)notRounding:(float)num afterPoint:(int)position{ NSDecimalNumberH...原创 2018-04-27 13:16:41 · 1231 阅读 · 0 评论 -
ios开发中怎么判断各类设备
代码如下//获得设备型号+ (NSString *)getCurrentDeviceModel:(UIViewController *)controller{ int mib[2]; size_t len; char *machine; mib[0] = CTL_HW; mib[1] = HW_MACHINE;原创 2016-07-28 15:27:23 · 2173 阅读 · 0 评论 -
整理总结iOS 13适配遇到的问题
1.UISearchController上的SearchBar显示异常,高度变为只有1px。 解决方法:解决办法是使用KVO监听frame值变化后设置去应该显示的高度。2.iOS13禁止使用valueForKey、setValue: forKey的方式获取和设置私有属性,会引起crash。 解决方法:使用其他方法替换。3.TabBar上设置的红点会偏移到左上方。遍历UITabB...原创 2019-09-17 10:45:15 · 3918 阅读 · 0 评论 -
iOS 开发中点击tabBar弹出登录界面
以前我实现弹出登录界面是在对应的controller中的viewwillappear里实现,这样做的缺点是,点击要弹出登录界面的tabbar里的contrllor时会先显示对应界面再弹出登录。需求希望在点击切换tabbar的item时就弹出登录,不进入对应界面。实现代码如下:需要实现tabbarController对应的代理方法,遵循代理UITabBarControllerDelegate...原创 2019-05-14 16:56:55 · 1031 阅读 · 0 评论 -
使用gem安装软件(cocoapods fastlane等),报错You don't have write permissions for the /usr/bin directory.
我们是用gem 安装一些插件时,有时会遇到报错You don't have write permissions for the /usr/bin directory.即使我们在安装命令前加上sudo,也不行。这时我们可以使用:sudo gem install fastlane -n /usr/local/bin 这句就可以了,其中fastlane是插件名称,我们安装其他插件也可以这么用。...原创 2018-09-18 13:40:42 · 3435 阅读 · 0 评论 -
ios开发中关于UINavcontroller影响布局的问题
导航栏分为半透明和不透明类型translucent1当导航栏为不透明时:self.navigationController.navigationBar.translucent= NO;视图控制器里的控件布局时都是默认从(0,64)开始布局。2当导航栏为半透明时:(1):视图控制器里面第一个被添加进去的视图是滑动类视图,并且其Frame是整个屏幕大小时,系统会自动调整其contenIns...原创 2018-07-27 13:40:22 · 390 阅读 · 0 评论 -
ios使用object-c实现快速排序算法
在iOS开发中我们有许多时候用到排序算法,而快速排序是比较常用的算法代码才用递归的方法,内容如下:-(void)quickSort:(NSMutableArray *)array withLeftIndex:(NSInteger)leftIndex AndRightIndex:(NSInteger)rightIndex{ if(leftIndex>=rightIndex...原创 2018-07-05 09:46:13 · 353 阅读 · 0 评论 -
ios开发中怎么处理网络请求中的null
在iOS开发中,我们进行网络请求是很容易请求的结果返回null值,app处理不好容易发生闪退,造成很不好的用户体验。所以我们在获取到网络请求时,需要把请求道的json对象null处理一下,我的思路是把所有的null值转换为空字符串"".代码如下:因为json中各种数据结构无非就是字典、数组、字符串,我们要做的就是遍历挣个json结构,找出所有可能存在的null转换为"";我们采用递归的方法:+(...原创 2018-06-26 14:14:38 · 530 阅读 · 0 评论 -
iOS开发截取字符串中的汉字
代码如下:#pragma mark -获取一段字符串中的中文字+ (NSArray *)getAStringOfChineseWord:(NSString *)string{ if (string == nil || [string isEqual:@""]) { return nil; } NSMutableArray *arr = [[NSMutableA...原创 2018-06-22 10:49:06 · 960 阅读 · 0 评论 -
创建React Native项目后引用#import "RCTRootView.h"提示找不到
使用pod 在项目中安装了react后引入import "RCTRootView.h没有提示,写进去还会报错。解决办法:只要把pods的目录添加到用户头文件检索的路径就行。具体实现如下:1.选择target--BuildSetting--seatch Paths 下的User Header Search Paths如图所示:2双击后面的空白区域出现列表点击“+”号添加一原创 2017-06-07 15:58:53 · 5060 阅读 · 0 评论 -
数据结构与算法中的拓扑排序方法
概念:任何无环有向图,其顶点都可以排在一个拓扑序列中,其拓扑排序的方法是:(1)从图中选择任意一个入度为0 的顶点并输出(2)从图中删掉此顶点及其所有的出边(3)回到(1)步继续执行代码:使用对列方式实现拓扑排序void TopsortByQueue(Graph&G){for(int i=0;iG.Mark[i]=UNVISITED;//初始化标记数组using s原创 2017-06-01 18:04:14 · 572 阅读 · 0 评论 -
iOS开发中oc代码响应js网页点击事件的方法
在APP开发中我们经常碰到一种情况:app打开一个网页,网页里有些按钮需要我们去响应,比如打开一个游戏介绍的网页,点击网页中的“立即下载”按钮,app需要跳转到对应下载界面。那么我们怎么响应?代码如下:-(void)makeWeb{ self.webView = [[UIWebViewalloc] initWithFrame:CGRectMake(0原创 2016-09-12 18:25:43 · 6296 阅读 · 0 评论 -
iOS开发70-iOS Xcode Instrument无法监测App,选择Choose Target后,找不到当前项目对应的app程序
打开Xcode工程, clean (Shift+Command+K), Build (Command+B), Profile (Command+I).1、拔掉设备(iPhone/iPad),关掉设备。(长按电源键)2、关闭Xcode和Instruments3、重启设备(iPhone/iPad),并连接到电脑。4、重新打开Xcode5、打开工程 clean (Shift+转载 2016-08-19 16:53:51 · 1033 阅读 · 0 评论 -
iOS把数组中是数据按照条件分组
在APP开发中经常碰到这种情况,后台给的数据需要我们按照某种条件分组。比如我的项目中:需要把数组中的数据按照时间分类分组,同一天的数据放在一起比如8-20号的数据分一组,8-21号的数据分一组。代码如下: 其中_dataArray为需要分类的数组,_titleArray为分好组的数组。//首先把原数组中数据的日期取出来放入timeArrNSMutableArray *tim原创 2016-08-18 16:11:50 · 8264 阅读 · 2 评论