iOS
文章平均质量分 74
磊怀
这个作者很懒,什么都没留下…
展开
-
iOS 字符串两端对齐
有这么个需求直接上代码UILabel * uplab = [ViewController normalLabelText:@"身份证号"];[self.view addSubview:uplab];uplab.frame = CGRectMake(100, 100, 80, 20); UILabel * downLab = [ViewController normalLabelText:@"姓名"];[self.view addSubview:downLab];downLab.fra原创 2021-04-02 14:50:01 · 861 阅读 · 0 评论 -
iOS NSTimer 循环引用
#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface INWeakProxy : NSProxy- (instancetype)initWithObjc:(id)target;+ (instancetype)proxyWithObjc:(id)target;@endNS_ASSUME_NONNULL_END#import "INWeakProxy.h"@interface INWeak原创 2020-12-07 15:46:03 · 146 阅读 · 0 评论 -
iOS ld: framework not found AFNetworking
我来说一下我遇到的情况:创建好一个项目,如下:目录结构是这个样子的,我将选中的这两个文件挑出来放在了一个文件夹下如下:这时候会有报错,如下:没关系,有错就解决 删除选中文件继续编译继续报错继续解决 删除选中文件。 接下来我使用cocoapods 导入了‘AFNetworking’ 导入过程就不说了,但是编译就会报错找了若干个方法,都不奏效。但是想也不用想,肯定是项目中的 framework 路径设置出现问题了。在pod集成时,终端提示我们了,如下图:看看吧,在pod集成原创 2020-09-10 18:08:35 · 4328 阅读 · 0 评论 -
错误解决
项目编译遇到这么一个问题,赶紧查资料,解决module map file ‘/Users/leihuaiwang/Desktop/prostar/projectIOS/project/frameworks/runtime-src/proj.ios_mac/Pods/Headers/Public/SSZipArchive/SSZipArchive.modulemap’ not found找到相关的解决方案的不多,大多是在说 是 pod的问题,对cocoapods 进行各种操作删了重装,各种clean原创 2020-06-16 18:53:04 · 4171 阅读 · 3 评论 -
iOS 代码精简的小技巧(**)
最近项目有精简代码的需求。代码美观,耦合性地,这就要求我们尽可能的将一个类中的代码抽离出去,重新抽离在一个新的类中。但是在当前类中可能存在某些局部变量或者全局变量需要改变值,出现无法抽离到新的类中的情况,请看下面的情况。①:在一个方法中改变局部变量的值显然这样是无法改变 str 的值的。那么这种情况 就可以使用 ()这个技能了。这样用法的大概意思是 把 str 的变量的地址 提供给 changeValue 使用。在changeValue** 方法中就可以通过地址来操作 这个局部变量了。②原创 2020-06-12 10:50:31 · 1085 阅读 · 0 评论 -
OC解决大量使用switch...case 语句的问题
先来看一张图片项目中我们总是不可避免的要是用到if...else..语句,或者大量使用swift...case... 语句,对于少量的判断,也无可厚非了,但是对于大量的判断,就会让我们的代码看上去特别乱,有些浪费代码了。OC 包括其他语言都给我们提供了解决这种困境的方法。这里我说一下OC的使用。在这之前希望读者对 Selector 有一定的了解。①、假如代码使用了大量的判断,我们要尽量保证...原创 2020-03-24 19:20:16 · 1364 阅读 · 0 评论 -
duplicate symbols for architecture arm64
调试一个项目,引入了第三方库,结果出现了如上所述的错误。我说一下我的情况: 这个提示大致是说 有个重复命名的文件。注意,这个提示之前还有一大推提示。在那些提示里面可以找到重复命名的文件名我使用了mac的全部查找功能, 找到该文件可能出现的地方。发现我自己定义的问题与第三方sdk的某个文件命名冲突。知道了这个错,修改起来就很简单了。祝大家工作愉快...原创 2020-03-12 17:44:13 · 3859 阅读 · 0 评论 -
iOS xib 点击事件未响应
一个困扰我两天的问题,终于解决了,人类在探索未知领域的时候总是这么步履维艰。一步一步透过层层浓雾,登上山顶,长开有力的臂膀,撕破笼罩在周身的浓雾,一缕阳光照进你的胸膛,豁然间:一种拨开云雾见青天的感觉油然而生。抬望眼,你蓦然瞥见,原来脚下的路不过才是登顶的第一阶而已!按钮的点击事件,手势事件等,存在最大的不可点击的原因就是 子视图布局在了父视图之外。我遇到的情况就是这样首先来看效果图 ...原创 2020-03-03 16:07:23 · 835 阅读 · 1 评论 -
swfit 轮播图(一)
自定义了一个banner类。完全凭借OC的感觉写的。话不多说,直接上代码//// LHWhellPlantImage.swift// safari//// Created by 磊怀王 on 2019/12/2.// Copyright © 2019 磊怀王. All rights reserved.//import UIKitclass LHWhellPlantIm...原创 2019-12-02 19:16:24 · 143 阅读 · 0 评论 -
_nullable、nullable、nonnull区别
1、nonnull:字面意思就能知道:不能为空(用来修饰属性,或者方法的参数,方法的返回值)//三种使用方式都可以 2 @property (nonatomic, copy, nonnull) NSString *name; 3 4 @property (nonatomic, copy) NSString * _Nonnull name; 5 6 @property (nonato...原创 2019-02-13 15:48:17 · 3809 阅读 · 1 评论 -
wkwebview 刷新仍然白屏
如果先断网,加载WKWebView后,页面出现空白;然后再连网,点击按钮后不刷新WKWebView,页面还是一片空白。使用 [weakSelf.wkweb reload]; 方法刷新,急速切换网络会导致wkwebview刷新无效。使用 [self.wkweb loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:self....原创 2019-02-14 15:23:37 · 2005 阅读 · 0 评论 -
iOS 图片合成(一)
需求:我们要将非固定的文本、图片等信息合成到一张图片上,例如我们要做一个分享的功能,有一张底图,在这底图上我们要把用户的头像和昵称放上去。这里我们用到Quart2D绘图之UIGraphicsBeginImageContextWithOptions 图形上下文的功能。1、在指定图片上添加另一张图片(被添加者我们称之为水印)+ (UIImage *)pq_WaterImageWithImage:(...原创 2019-02-20 17:25:56 · 1713 阅读 · 0 评论 -
iOS 合成图片(二)
直接上代码如要参考,请先看懂再参考 代码中的逻辑可能只满足我们的需求。如有疑问:我是磊怀 请你联系我2849765859qq或参考我上篇博客//// XLImageSynthesis.h// mahjonghn//// Created by 磊怀王 on 2019/2/20.//#import &lt;Foundation/Foundation.h&gt;NS_ASS...原创 2019-02-20 18:33:02 · 727 阅读 · 0 评论 -
NSDate转NSString 结果为nil
众所周知:NSDate转NSString 的转化,代码如下:1 NSString *birthdayStr=@"1986-03-28 00:00:00.000";2 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];3 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm...原创 2019-03-05 16:59:35 · 416 阅读 · 0 评论 -
ARC环境下输出引用计数
在ARC环境下,iOS不允许通过obj.returnCount的方式直接输出引用计数。使用如下代码LHSimpleObject * simpObject = [LHSimpleObject alloc]; NSLog(@"returnCount = %ld",CFGetRetainCount((__bridge CFTypeRef)(simpObject))); simpObj...原创 2019-03-08 14:48:51 · 270 阅读 · 0 评论 -
KVC基本原理和用法
一、基本概念KVC是Key Value Coding的缩写,意思是键值编码。在iOS中,提供了一种方法通过使用属性的名称(也就是Key)来间接访问对象属性的方法,这个方法可以不通过getter/setter方法来访问对象的属性。用KVC可以间接访问对象属性的机制。通常我们使用valueForKey 来替代getter 方法,setValue:forKey来代替setter方法。二 常用方...原创 2019-03-08 15:19:58 · 7507 阅读 · 0 评论 -
青花瓷 Charles 抓包工具下载安装破解 JDK环境下载安装
1、Charles 长这个样,不要下载错了是mac设备上使用的比较普遍的一个抓包工具2、Charles下载下载链接http://www.pc6.com/mac/137987.html (这是找的别人的链接)Charles下载 您也可以找到其他的下载链接,没关系,都可以使用。在您下载完成之后应该包含如下三个文件3、选中Charles拖到第一个文件夹内。拖到第一个文件夹之后您就能在启动...原创 2019-03-07 18:58:16 · 3877 阅读 · 0 评论 -
dyld: Library not loaded: @rpath/xx.framework/du Referenced from: /var/containers/Bundle/Applicati
如下图程序可以顺利编译,但是一运行就崩溃dyld: Library not loaded: @rpath/xxx.framework/duReferenced from: /var/containers/Bundle/Application/83F4E1C8-76B8-4AD9-801E-7E7A23511126/mahjonghn.app/mahjonghnReason: image no...原创 2019-03-13 14:14:37 · 3110 阅读 · 0 评论 -
_cxa_throw xocde运行卡住
通常情况下,APP使用xcode运行可以畅通无阻的运行完,但是经常遇到一种情况是运行卡在了_cxa_throw 位置需要不打断点才能运行下去,如下图看样子是项目中引用了 libc++abi.dylib 这个系统的库,导致编译过程中C++文件编译报错导致被卡主了。表现出来就是程序运行在不知道的地方有个断点。可能在项目中你有全局断点,找到全局断点,右键选择编辑断点在exception 选...原创 2019-04-28 11:18:30 · 1257 阅读 · 0 评论 -
加载失败Error Domain=WebKitErrorDomain Code=204 "插件处理的载入"
报错如下**加载失败Error Domain=WebKitErrorDomain Code=204 "插件处理的载入" UserInfo={_WKRecoveryAttempterErrorKey=<WKReloadFrameErrorRecoveryAttempter: 0x287bd82e0>, NSErrorFailingURLStringKey=https://h5-test...原创 2019-09-02 10:25:02 · 2347 阅读 · 0 评论 -
仿趣头条获取系统通讯录,并自定义通讯录界面
我们有个项目 需求要做一个方趣头条的获取通讯录的要求,在此期间,对搜索栏和边栏首字母检索,有些陌生,踩了一些坑。先来看效果首先是获取系统通讯录,在iOS9之后,iOS对通讯录的库有了很大的改善。用起来很方便,但是点要注意在引用#import <ContactsUI/ContactsUI.h>#import <Contacts/Contacts.h>这两个库的时候,...原创 2018-12-07 21:08:22 · 1154 阅读 · 0 评论 -
armv7、arm64、Valid Architectures是什么东西,有啥区别
iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么在做静态库的时候以及引用静态库的时候经常会遇到一些关于真机模拟器不通用的情况,会报错找不到相应库导致编译失败,这里简单记录一下各种设备支持的架构。iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器,模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器...原创 2019-02-22 15:17:38 · 6705 阅读 · 0 评论 -
什么是arm
ARM是一种架构,是iOS程序可以运行,并执行了一定的命令的基本依赖概述发布至今的iOS设备中的处理器都是基于ARM架构的。你会发现,这个架构和一些用于桌面设备的x86或者是PowerPC架构有些不一样。然而,这并不是什么特别的架构,且应用广泛:几乎所有移动电话(不只是智能电话)都是基于ARM架构的;几乎所有的iPods,以及MP3,PDA和PocketPC设备通常都是基于ARM的;任天堂自G...原创 2019-02-22 14:58:03 · 2978 阅读 · 0 评论 -
[UIApplication sharedApplication].keyWindow和[[UIApplication sharedApplication].delegate window]区别
在项目开发过程中经常有需要在window上添加各种文本提示框,今天我们就有这么一个需求,查了各种资料说有不同的获取方法但是用到的最多的是[UIApplication sharedApplication].keyWindow和[[UIApplication sharedApplication].delegate window] 这两种方式。但是这两种获取window获取方式有什么区别呢,我特意从...原创 2018-12-15 19:37:12 · 4815 阅读 · 0 评论 -
Duplicate interface definition for class
多人开发过程中,由于git的原因,可能会出现上述问题。可能出现上述问题的原因是A程序员在移动项目中已经存在的文件到了另一个文件夹下。解决办法找到在项目中重名的文件,注意不要放废纸篓,不要把真正文件夹下的删了...原创 2018-12-14 18:12:21 · 2959 阅读 · 0 评论 -
wkwebview 向JS传数据 多个参数
联调web和JS传数据遇到一个坑。JS可以捕获到web向他传参数的一个动作,但是获取不到要穿过去的参数。例如这样 cbDispatcher是我们约定好的方法名,3和后面那个字符串是我将要传的参数,但是这里请注意传参数不是这样穿的。NSString * backStr 是oc里面的一个字符串但是请注意,这样的oc的字符串是不被JS认可的,需要在所有参数外面统一加上‘’单引号。是这样:加上单...原创 2018-12-20 11:32:30 · 2753 阅读 · 0 评论 -
wkwebview 的内存泄漏问题
昨天写好的一个功能是有关wkwebview的。本身根据我的理解,wkwebview相比于uiwebview来说有了很好的优化,具体的好处这里我就不说了,我说一下我这里遇到的问题。我们的项目中要用到JS调用OC和OC调用JS,这里要用到 WKUserContentControllerWKWebViewConfiguration * configura = [[WKWebViewConfigu...原创 2018-12-08 15:39:59 · 2053 阅读 · 0 评论 -
关于xcode调试.mobileprovision signing certificate 的配置
我们单位开发一个项目用到了一个开发这账号,我们的iOS开发一共四个人,每个人都提供了一个开发这账账号。**注意:我们公司的账号是母账号,我们个人提供的账号是子账号,是没有付钱的账号。**对于子账号而言,登录developer之后,并没有需要让相关人员,把你的账号(子账号)加入到母账号中才能创建证书和配置文件,用以真机运行。但是在调试过程中遇到了各种坑,主要还是自己对xcode的各种配置不是很熟悉...原创 2018-12-07 19:23:25 · 3588 阅读 · 0 评论 -
删除安装在本地的.mobileprovision/配置文件
打开终端执行命令open ~/Library/MobileDevice/Provisioning\ Profiles/注意,\ 并不是打错了,复制粘贴到终端就行然后,终端会打开一个文件夹,想删除哪个,自己选吧...原创 2018-12-07 17:29:02 · 1231 阅读 · 0 评论 -
unable to read property list form file xxxx/Info.plist:The operation could not be completed
今天多人开发遇到一个复杂的问题,最终不知道如何解决掉了,但是在后来合并代码的时候又遇到如下问题:unable to read property list form file xxxx/Info.plist:The operation could not be completed截图如下:原因:这里所说的主程序plist文件中有冲突解决方法如下:然后按照自己的需求删除冲突的代码就可以了...原创 2018-12-03 11:56:29 · 3787 阅读 · 0 评论 -
添加小红点给Tabbar或UIview右上角、文字文本、数字文本 、切圆角
这两天在搞给tabbar或常规控件添加小圆点、数字文本、纯文本的需求。使用了Masnory这个库对常规控件添加约束有一个巨大的坑,就是无法及时获取到常规控件的x和y。但是可以及时获取到常规控件的w和h。 这就导致了如果使用masnory约束之后的控件,无法把什么红点、文字文本、数字文本直接作为子视图添加到目标控件上,列位看官请耐心的看下去。 如果是常规控件的常规操作的话是可以把小红点作...原创 2018-12-05 11:27:18 · 1827 阅读 · 1 评论 -
WKWebview 调用js的方法以及遇到的坑
今天做webview和js交互的诸多事宜。众所周知wkwebview调用js的方法,要调用如下代码- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHand...原创 2018-12-10 19:42:09 · 15253 阅读 · 0 评论 -
+inf和nan
头一次遇到float类型的值有nan和+inf的情况,排查代码之后发现是由于一个float类型的值除了一个为0的数,得到的+inf的情况,对于这种情况,暂时没有找到有系统的解决方法。我是按照if语句判断了一下。不让除以0就可以了。对于后续的对+inf的float值做的加减乘除的操作会遇到nan的情况总结如下。inf :infinity (linux) 等同于 #INF:infinity (w...原创 2018-12-18 11:11:03 · 3295 阅读 · 0 评论 -
git merge --abort的一种使用情况
今天的项目工程文件产生了冲突,没办法,显示包内容。三下五除二把冲突解决了,结果发现项目的project文件还是不能打开,但是已经无法回归到解决冲突之前的状态了。怎么办,问了公司的大牛,执行git merge --abort命令回到解决冲突之前的状态。再重新执行git pull操作。重新解决冲突, 注意看仔细了。总结一下该命令仅仅在合并后导致冲突时才使用。git merge --abort将会...原创 2018-12-18 11:17:35 · 68818 阅读 · 0 评论 -
NSException 的入门使用
最近要研究那个Bugly上传错误的东西。我多说一句,Bugly在iOS端的使用中会自动将崩溃上传,无需写什么代码。但是我觉得有必要学会使用 NSException exception一般情况下是跟try…catch…finally 联用的。我在这里举几个例子使用**一、**如下:有过开发经验的人都能看出来, test 没有进行初始化,直接作为dic的key是不合理的,一般的开发过程中,如...原创 2019-01-14 15:36:04 · 1086 阅读 · 0 评论 -
categroy 本质
一)Category1、什么是Category?category是Objective-C 2.0之后添加的语言特性,别人口中的分类、类别其实都是指的category。category的主要作用是为已经存在的类添加方法。除此之外,apple还推荐了category的另外两个使用场景。可以把类的实现分开在几个不同的文件里面。这样做有几个显而易见的好处。可以减少单个文件的体积可以把不同的功能组...原创 2019-01-08 18:52:11 · 368 阅读 · 0 评论 -
阿里图片合成接口拼接
上篇博客我写了把两张图片合成为一张图片。那样的合成方式是可以的,也是可以合成成功的。但是这样的合成方式有些许不足1、合成的图片除非服务器端给配置的图片考虑到了不同设备的分辨率的情况,这对不同的设备给了不同的图,如果不是这样,生成的图片放在不同的设备上有不同程度的拉伸问题。2、如果两张图片都是服务器端给的url,那么我们需要使用图片下载工具,对两张图片分别下载。代码量非常多。研究了好久,发现...原创 2019-01-07 18:55:58 · 6376 阅读 · 0 评论 -
WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: xxxx
oc调用js的方法的时候回出现这样的报错,直接看我的报错代码- (void)appWillEnterBackGournd:(NSNotification *)info{ if (self.wkweb != nil && self.callBackFile.enterGroudDic != nil){ NSString * backStr = [NSStri...原创 2019-01-17 21:06:31 · 10045 阅读 · 0 评论 -
通过H5直接打开微信支付
前两天通过H5集成了一款游戏,游戏中集成了微信支付。但是我们的产品对H5跳转微信充值有一定要求,我大致说明一下。前言:直接使用[[UIApplication sharedApplication] openURL:request.URL]; 这句代码只是跳转了safari浏览器,这样不满足我们产品的需求,另外在safari浏览器中还会有一个弹窗,”是否打开微信“。如果使用SFSafariView...原创 2019-01-17 20:59:16 · 8224 阅读 · 0 评论 -
将两张图片合成为一张图片
UIGraphicsBeginImageContext(mainImage.size);[mainImage drawInRect:CGRectMake(0, 0, mainImage.size.width, mainImage.size.height)];[qrImage drawInRect:CGRectMake(0, 0, qrImage.size.width, qrImage.size...原创 2019-01-02 16:47:02 · 1794 阅读 · 0 评论