iOS日常问题
文章平均质量分 69
Lu_Ca
每天一小步。。
展开
-
_button.enable=NO不起作用
测试在设置弱网环境后,对按钮不断点击,然后触发了多次网络请求。怎么处理呢?点击的时候直接设置按钮的enable=NO,然后网络请求回调后,再设置按钮的enable=YES。然后,设置伪代码_button.enable = NO;[selfjoinCourseWithModel:self.courseModel netRetBack:^{ _button.enable = YES;}];没问题,直接运行,发现弱网环境还是可以连续点击。前后添加打印,发现按钮的en...原创 2021-01-20 16:17:23 · 606 阅读 · 0 评论 -
宏定义导致三目运算结果不正确
前言:今天记录一下前两天写代码遇到的一个有意思的小问题。这个问题初看很诡异,分析后直击自己知识的浅薄。首先有两个宏定义,以下程序运行均在手机端运行,也就是两个宏定义结果都是YES#define kDeviceiPhone [[UIDevice currentDevice].model isEqualToString:@"iPhone"] ? YES : NO#define kDeviceiPhone [[UIDevice currentDevice].model isEqualToString原创 2021-01-13 16:14:31 · 768 阅读 · 0 评论 -
iOS中获取WiFi的SSID(CNCopySupportedInterfaces())
ios5之前可以通过读取配置文件获取,ios5以后苹果修改wifi列表文件位置,只有root权限才可以读取.ios4:/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManagerios5:/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration转载 2021-01-04 13:56:49 · 3945 阅读 · 0 评论 -
iOS查看model对应属性前后是否发生了变化
事件起因:进入到一个vc后需要判断model的属性值是否发生变化,如果变化做出处理,如果没有变化则不处理。思路1:for循环model的属性,然后通过一一比对旧model和新model的值,来判断是否发生了变化。思路2:通过runtime获取到model的属性列表以及对应的值,将这些key-value存储到字典中,通过比对字典是否一样。结论:思路1比较繁琐,而且拓展性也不好,所以按照思路2来实现。给model添加一个方法:- (NSDictionary *)propertyValueD原创 2020-11-26 16:42:51 · 1504 阅读 · 0 评论 -
sourcetree忽略.xcuserstate用户行为文件
用sourcetree管理项目,总是提交完代码后,还会有.xcuserstate 或者 breakpoint.xcbkptlist 类型的用户数据文件出现在修改列表中。可以在sourcetree里设置忽略这样的文件,就不会出现在修改文件的列表中了。随后再执行提交,推送,以后再进行界面操作,就不在会出现.xcuserstate 的提示了,同理breakpoint.xcbkptlist 的操作也是一样的。...原创 2020-06-01 11:10:55 · 745 阅读 · 0 评论 -
iOS常见错误提示Assertion failure in -[UIApplication _runWithMainScene:transitionContext:com
我们有个需求是要网络请求后,由服务器返回字段,判断当前的根控制器,然后就在网络请求回调里设置了rootViewController,允许程序直接崩溃,提示信息Assertion+failure+in+-%5BUIApplication+_runWithMainScene:transitionContext:completion:%5D,+/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3698.54.4/UIApplication.m原创 2020-05-28 17:44:40 · 1479 阅读 · 0 评论 -
mac系统升级后pod命令错误
解决MAC系统升级导致COCOAPODS失效问题使用pod命令后报错-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory这是Mac升级系统导致,当你的Mac系统升级系统后,要更新cocoapods。执行命令:$ sudo gem update --system$ sudo原创 2020-05-11 17:08:22 · 413 阅读 · 0 评论 -
iOS停止H5的视频播放
开发过程中有页面加载的h5页面,这个h5页面会播放视频,但是我退出这个页面后视频还是会继续播放还有声音。于是,将webview置为nil,发现还是会后台播放声音。无奈只能在页面要消失的代码里控制video的视频标签- (void)viewWillDisappear:(BOOL)animated{ [self.webView evaluateJavaScript:@"...原创 2020-03-30 16:34:25 · 1415 阅读 · 0 评论 -
iOS 字符串邮箱、手机号检测是否合法
平时可以将这些方法添加到自己用的分类中去,更加方便的使用检查邮箱#pragma mark -检查邮箱- (BOOL)judgeEmail{ if (((NSString *)self).length ==0) { return NO; } NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9...原创 2020-01-03 11:48:24 · 503 阅读 · 0 评论 -
Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
真机运行项目,项目进入某个页面的时候会卡几秒,然后进入页面。日志输出1、在子线程刷新UI的问题,首先定位刷新UI的地方,放到主线程中去,从根本解决这个问题。2、关闭Xcode的主线程检测去掉对勾,重新运行项目就不会打印了,也不会卡顿了...原创 2019-12-19 11:46:29 · 3088 阅读 · 0 评论 -
iOS集渐变、投影与圆角于一身的按钮
日常代码中,提到圆角一般我们都会通过layer的几个属性设置Btn.layer.cornerRadius = k_FitIphoneIpadSize(25);Btn.layer.masksToBounds = YES;Btn.layer.borderWidth = k_FitIphoneIpadSize(2);Btn.layer.borderColor = RGB(232, 232, ...原创 2019-11-18 14:02:21 · 299 阅读 · 0 评论 -
tableview设置footer会悬停在屏幕下方
最近项目中需要给UITableView设置一个类似于“已经到底部啦”的footview提醒,想都不想直接用代理方法 (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section自定义一个view返回给这个代理方法,然后实现另一个方法- (CGFloat)tableView...原创 2019-10-16 10:46:57 · 2149 阅读 · 0 评论 -
高斯模糊效果的简单实现
这里简单介绍一下高斯模糊效果.这里介绍的是coreImage,原理很简单就是抓取现在当前的image,然后设置高斯模糊.首先是获取当前的image:(两种方法)方法一:- (UIImage *)snapshot:(UIView *)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size,原创 2016-03-23 14:31:04 · 2261 阅读 · 1 评论 -
iOS推送pem文件的生成
1、首先登陆到开发者中心证书设置页面,https://developer.apple.com/account/ios/certificate/create/2、我之前已经有一个证书,需要把这个证书添加上推送的功能,所以需要编辑证书,点击identifiers下边的App IDs选择要编辑的app id,我这个是PushDemoTest,点击之前Push Notifications后边的disa原创 2017-09-21 09:02:02 · 560 阅读 · 0 评论 -
Xcode9项目页面跳转崩溃
新升级手机系统,然后跟着xcode、电脑系统升级,Xcode版本9.4,然后运行程序,没问题。然后点击跳转程序直接崩溃,崩溃到main()函数。究其原因---navigation使用方法有点变化首先,在一些页面中为了自定义导航栏,所以在- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated];...原创 2018-05-17 15:19:28 · 685 阅读 · 0 评论 -
xcode9真机调试
更新到xcode9后真机调试突然不行了,需要在模拟器添加的地方设置下插上自己的手机,然后如图点击项目添加模拟器点击左下角的+选中自己的手机,点击next设置完成,继续真机调试...原创 2018-05-17 15:29:29 · 3272 阅读 · 0 评论 -
xcode9后tableview每次增加或者删除行时cell都会上跳
给tableview添加tableView.estimatedRowHeight = 0;_tableView.estimatedSectionHeaderHeight = 0;_tableView.estimatedSectionFooterHeight = 0;可以解决这个问题原创 2018-05-17 16:08:14 · 768 阅读 · 0 评论 -
iOS11中tableview和scrollview顶部有空白
先加载视图到界面上再用下边的这句话才管用 if (IOS11_OR_LATER) { self.homeView.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; } else { self.automatical...原创 2018-07-20 16:47:19 · 895 阅读 · 0 评论 -
NSLog不输出日志问题
今天突然发现NSLog里面的日志都不能在XCODE控制台输出日志了。如图所示,去掉OS_ACTIVITY_MODE DIABLE前面的勾,就能正常输出了。原创 2018-08-15 11:55:42 · 5303 阅读 · 0 评论 -
去掉字符串两端空格
项目中用到历史标签,需要去掉字符串两端的空格,但是不能去掉字符串中间的空格,所以用到了下边的方法 NSString *history = [self.windowMarkTF.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];亲测可用。如果想去掉字符串的空格只需要查找到空...原创 2018-08-24 09:53:27 · 1662 阅读 · 0 评论 -
Xcode rename failed的问题
1、前往文件夹~/Library/Developer/Xcode/DerivedData2、删除里面的文件3、关闭xcode,并重新打开原创 2019-04-04 16:26:23 · 634 阅读 · 0 评论 -
iOS CUIThemeStore: No theme registered with id=0
新建iOS项目,运行控制台打印[framework] CUIThemeStore: No theme registered with id=0这是提示项目中还没有添加appicon,在 Assets.xcassets 文件夹中添加AppIcon之后就不会打印了...原创 2019-09-27 09:27:56 · 2347 阅读 · 0 评论 -
android和ios的数组逆序
由于项目中服务器数据是和实际时间相悖的,我需要在手机端,将接收到的数据倒序,然后来展示iOS中,要拿到historyOperateArray内容的逆序的数组 NSArray *array = [NSArray array]; array = [[historyOperateArray reverseObjectEnumerator] allObjects];原创 2017-08-03 09:14:27 · 643 阅读 · 0 评论 -
将char *类型数据转变成oc数据
项目中传递的数据是byte类型的,我用char *数据类型接收的。服务器商量好,第三个和第四个字节来表示数据的长度,剩下的就是需要用的数据。然后就有了: int length = (unsignedchar)_buf[2] + (unsignedchar)_buf[3]*256;之前我直接用int类型接收,没有转化为unsigned char类型,导致越界,数据产生负数原创 2017-08-01 09:03:22 · 834 阅读 · 0 评论 -
linker command failed with exit code 1
linker command failed with exit code 1 (use -v to see invocation)报错后显示一大堆,纪录下,出现问题的原因是:在一个类中引入了一个类的.m文件,粗心导致的。报错的位置显示不是特别准确,本来是在A文件中引入了B文件的.m文件,报错却显示B文件错误,导致找错误需要特别细心原创 2017-07-14 17:11:43 · 467 阅读 · 0 评论 -
float类型的数a和0比较使用:
float类型的数a和0比较使用:先判断是否相等:fabs(a-0)再判断a大于0:a>0和判断a小于0:a由于浮点数的计算误差,0可能出现0.00000001或者-0.00000001等无限接近于0,所以先把该数a和0作差后的绝对值与一个很小的数比较,如果小于这个很小的数,则说明a等于0,否则就可以直接用a>0和a例如:#inc原创 2016-06-14 17:20:10 · 3800 阅读 · 0 评论 -
whose view is not in the window hierarchy
今天不经意间发现一个好玩的问题,感觉这个问题挺奇葩的,而且以前没有遇到过,然后百度发现就有两个回答,还是老外的回答http://stackoverflow.com/questions/15287678/warning-attempt-to-present-viewcontroller-whose-view-is-not-in-the-window-hierahttp://stack原创 2016-07-07 16:40:06 · 3379 阅读 · 0 评论 -
你所访问的站点在微博的认证失败 21322
你所访问的站点在微博的认证失败 21322,这个问题我的情况是在模拟器上运行的,由于没有安装微博,所以无法访问,使用真机,并且已经安装微博跳转正常期间我都做了这些操作,bitcode设置为no设置url schemes设置可以使用http原创 2016-05-19 13:42:15 · 2930 阅读 · 0 评论 -
新浪微博回调地址redirect_url(授权回调页)的设置格式
新浪微博回调地址redirect_url(授权回调页)的设置格式新浪微博回调地址redirect_url(授权回调页)的设置格式:http://open.weibo.com/apps/appKey/privilege/oauth例如:appKey=2675669085redirect_url = http://open.weibo.com/apps/267566原创 2016-05-19 11:50:50 · 5442 阅读 · 0 评论 -
Xcode7 使用NSURLSession发送HTTP请求的问题
在用xcode7加载一个html网页的时候,莫名其妙的加载不出来Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info原创 2016-03-23 14:23:11 · 639 阅读 · 1 评论 -
同样的布局,在4 5上没问题,但是5s 6 6s 6p都有问题
今天遇到了一个奇葩的问题。其实,到现在也不是特别理解其中的原理,由于时间匆忙,还是先记录一下,等以后有时间再去找原因吧。以前,写页面为了一些控件不被循环引用,所以,在写属性的时候@property (nonatomic,weak) UIImageView *passwordImageView;给这个控件一个week属性。但今天结结实实的在这个上边栽了一个大跟头,愣是找了半个原创 2016-03-31 11:44:59 · 806 阅读 · 0 评论 -
iOS 判断当前页面是否显示
有时候需要判断当前页面是否显示。构想一个场景:当用户使用app的时候,手机锁屏后解开屏幕锁,手机app进入前台。需要判断当前页面a还是页面b呈现给了用户。如果页面a呈现给用户,那么需要请求页面a的数据,如果页面b呈现给用户,需要请求页面b数据。这样用户每次进入app后呈现的数据都是最新的数据,利于用户体验1、首先当用户使用app进入前台,那么需要发送一个通知,通知app进入前台原创 2016-05-09 11:36:05 · 5928 阅读 · 1 评论 -
去除数组中重复的元素
今天遇到一个需求,一个数组中有一些元素,当然是什么元素就不知道了。总之,不能让数组中的元素重复。一开始想到的方法是遍历这个数组,一个一个的查找。但是总感觉这样太繁琐,于是,找了点资料总结了以下两种解决办法1.利用NSDictionary的AllKeys(AllValues)方法可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所原创 2016-05-10 10:30:11 · 1229 阅读 · 0 评论 -
iOS 十六进制颜色转成UIColor
iOS 十六进制颜色转成UIColor 标签: iOS十六进制转UIColorUIColor2016-05-17 10:33 4人阅读 评论(0) 收藏 举报 分类: iOS(6) 版权声明:本文为博主原创文章,未经博主允许不得转载。平时UI给的颜色基本都是16进制的,转成UIColor很简单- (转载 2016-05-17 11:03:25 · 784 阅读 · 0 评论 -
好玩的一些APIS for iOS
好玩的一些APIS for iOS好玩的一些APIS:那些简单又容易被忽略的。纯属记个笔记方便笔者查阅,因为笔者感觉这几个api有点意思而又不常用也容易被忽略。禁止进入休眠iPhone为了节省电力所以有一个自动休眠机制,如果想让我们的APP不自动进入休眠只需要设置UIApplication的idleTimerDisabled属性为YES即可。(切勿滥用)转载 2016-06-16 13:47:05 · 552 阅读 · 0 评论 -
让Xcode的控制台支持`po frame`的打印
在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候控制台经常给我们罢工,如下图 那我们现在就来谈谈这个问题的解决方案。其实也很简单,按照如下步骤即可让它不在罢工。打开终端输入三条命令:1. touch ~/.lldbinit2. echo display @import UIKit >> ~/.l转载 2016-06-16 14:45:24 · 1253 阅读 · 0 评论 -
xcode8创建NSManageObject subclass
升级xcode8后,由于之前用CoreData持久化存储的数据中需要添加了一个字段。要重新生成NSManageObject subclass,就先去给这个实体添加了一个字段,然后重新生成一下NSManageObject subclass。点击new file后,发现根本没有了之前的这个NSManageObject subclass图标了。这是什么鬼。。。百度后找到了解决办法,贴出来,,,原创 2017-06-26 12:07:57 · 454 阅读 · 0 评论 -
xcode8由于权限问题导致崩溃
问题是:本来好好的项目,在我用xcode8打包后,真机测试(注:模拟器没崩溃)。项目中有一个需要调用摄像头的功能,我在点击调用摄像头的时候,程序崩溃,然后重复多次都是直接崩溃。感觉莫名其妙,赶紧上xcode看看崩溃日志崩溃信息如下[access] This app has crashed because it attempted to access privacy-sensitive原创 2017-06-12 10:35:24 · 449 阅读 · 0 评论 -
iPhone获取WiFi的名称即SSID
导入包头#import //获取ssid- (id)fetchSSIDInfo{ NSArray *ifs = (__bridgeid)CNCopySupportedInterfaces(); DLog(@"ifs is %@",ifs); id infossid =nil; for (NSStrin原创 2017-05-24 10:30:08 · 2422 阅读 · 0 评论 -
nw_socket_set_common_sockopts setsockopt SO_NOAPNFALLBK failed: [42] Protocol not available, dumping
升级xcode8后,屏蔽后台的多余的输出这些烦人的输出是时候清理掉了。、然后在里边添加一个健值对,进入菜单product-scheme-edit scheme 添加环境变量 OS_ACTIVITY_MODE 为 disable 即可,如下图原创 2017-01-06 10:30:29 · 3072 阅读 · 0 评论