ios项目开发中遇到的坑(二)

这篇文章主要分享一下最近项目中遇到的问题和实际的解决方案的分享,还有一款小插件的分享,希望对遇到同类问题的作者有所帮助。

问题一

  • 使用WebView加载网页时候进行加载时候,如果出现网络请求缓慢,并且使用MBProgressHub进行动画处理,会出现以下情形:
  • 情形一:使用[MBProgressHub showMessage:""]
    使用这个方法你会出现这个情况
    整个屏幕被覆盖

这样的话用户无法操作,只能杀死程序重新开启程序,用户体验极差

  • 情形二:使用[MBProgressHub showMessage:@"" toView:self.view]
    只覆盖导航栏以下的屏幕

    这样体验较情形一较好,用户可以使用返回键返回,体验一般般。

针对这个问题首先想到的是WebView有没有个属性可以提供我设置超时请求,找了一遍没有,那么WebView load 是一个request,那么肯定有设置请求超时的操作,果然发现以下方法

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:_webViewUrl] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5.0];

webView的代理方法中

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
    NSLog(@"%@",error.userInfo);
    [MBProgressHUD hideHudWithMessageError:error.userInfo[@"NSLocalizedDescription"]];
    [MBProgressHUD hideHUDForView:_webView];
    
}

这样的就处理webView中的超时请求

提示请求超时

问题二

  • 定时器NSTimer使用出现的问题:在做获取验证码操作时候倒计时出现负数,原因未能正确处理定时器造成。
-(void)setUpTimer
{
    self.timeLable.text = @"59s";
    self.sendBtn.hidden = YES;
    self.timeLable.hidden = NO;
    self.timeIndex = 59;
    
    //设置定时器
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(elapsedTimer) userInfo:nil repeats:YES];
//这句代码非常重要,否则会造成未知的错误
    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSDefaultRunLoopMode];
}
//执行倒数器
-(void)elapsedTimer
{
    self.timeIndex = self.timeIndex - 1;
    if (self.timeIndex < 0) {
        self.timeLable.hidden = YES;
        self.sendBtn.hidden = NO;
        [self timerEndRunning];
    }else
    {
        self.timeLable.text =[NSString stringWithFormat:@"%ds",self.timeIndex];
    }
}

// 结束倒数器
- (void)timerEndRunning
{
    if (self.timer != nil) {
        [self.timer invalidate];
        self.timer = nil;
    }
}

在处理发送验证码按钮发送后显示暗色有两种方法,第一种将按钮设置为不能点击然后将按钮的背景色设置为灰色,第二种是创建按钮的时候设置图片的UIControlStateDisabled下的图片,以上两种的都可以。

你以为上面定时器就处理完成了吗?当你销毁界面的时候,你会发现delloc并未调用,实际上当控制器出栈的时候,并未销毁,什么原因呢,原因是你在发送验证码倒计时过程的定时器并未销毁和停止!!!
所以正确的逻辑应该是:

- (void)viewDidDisappear
{
  if(self.timer != nil)
  [self.timer invalid];
   self.timer = nil;
}

记得一定先invalidnil,否则你会后悔的。

最后给大家分享一个模拟低网速的插件,其实苹果官方已经给我们提供了这样的插件,我们去苹果官网下载就可以了

具体地址见下图:

请点击More Developer Tools...

这个地址是需要账号登录的,没有的伙伴申请一个即可。


红线部分即需要下载工具

个人点击下载最新的Xcode 7.3告诉我没有权限,所以我就下载了7.1,前提说明我的Xcode是7.3,安装后正常使用。

红色下划线的插件

点开后

点击Mangerprofiles选择你需要的场景

这样就可以在模拟器上模拟相应的网络状态了。

问题三 (补充)

更新于2016.6.21日

我们会遇到这种问题:

这种是使用[UIImage imageName:]这个方法未找到对应的图片引起的,如果是一个新的项目是不会出现这个问题的,因为你的图片你都是确定的,当我们要套用旧的项目开始一个新的项目的时候最容易出现,但是我们不可能一一去找到底在哪里,给大家分享一个简易的方法。

增加一个方法的断点,运行项目查找,更改后重新运行,问题就会消失。

  • 千万别打赏我,我害羞。。。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,568评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,612评论 4 59
  • 曾有小友问: 一、去年暑假我曾经去过工地实习一个月,发现了一个残酷事实,工地上文化程度最高的大学生却是工资最低的。...
    四十有获阅读 599评论 1 0
  • 我们就这样,各自奔天涯 -------《那些花儿》朴树 图片发自简书App 沈萌是在大胡同里长起来的孩子。正午各家...
    卉斗子阅读 290评论 0 0
  • 当当当当,当当当当,当当当当,当当当当。。。。 愉快的结婚进行曲,有节奏的响着,一位浓...
    一把琵琶笑江湖阅读 559评论 0 3