发布于

前些日子发现一个页面有些问题,于是排查。

逐行阅读,以为是block导致的循环引用问题,后来发现原来是因为dealloc方法没有执行,这里面定有蹊跷,呵呵。。。

又仔细检查发现原来是一个timer没有被释放掉,timer这个坑遇到不止一次了。。。

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [_timer invalidate];
    _timer = nil;
}

再Mark一下这个坑,谨记谨记。

发布于

  • 问题:

    项目的UITableViewCell中有Timer更新cell的进度条,而UITableView在滚动的时候这个动画就会静止,会引起一些问题(比如显示不准确)。

    这个问题困扰了我一阵子也是最近才想到可能的解决方案,查找了一些资料发现UIScrollView在滚动的时候run loop是UITrackingRunLoopMode
    ,原因在于UIScrollView在滚动的时候会block一切不在它自己的run loop mode对象。

  • 解决方案:

    将Timer加入到runloop中

    NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(sel) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    
  • 关于UITrackingRunLoopMode

The mode set while tracking in controls takes place. You can use this mode to add timers that fire during tracking.
Available in iOS 2.0 and later.

发布于

前一阵子调试项目发现控制台在某个页面每次都会输出这段话,差了一下发现是因为[UIImage imageNamed:name]中,图片名字为nil造成的。

解决方案:在出现错误的页面文件中搜索[UIImage imageNamed:,然后检查图片是否存在。

发布于

问题

WordPress提示“没有这个文件。请重新检查文件名,然后稍后再试。“

同时的另外一个表现就是无法编辑主题,也无法显示主题列表。

思来想去极有可能是权限问题,Apache/Nginx的执行身份非文件属主的身份导致的,很有可能是上次日本Linode down掉后往服务器还原文件所致。

解决方案

chmod -R 755 /home/wwwroot
chown -R www /home/wwwroot

赋予相关目录权限即可。

发布于

今天发现App在未开启状态下收到推送通知后,没有跳转到指定页面,遂开始调查。

后来发现通过推送点击进入App并没有调用didReceiveRemoteNotification方法,而是直接调用didFinishLaunchingWithOptions(这不应该的吗 😒)

解决方案:

在didFinishLaunchingWithOptions获取launchOptions的状态,如果是从通知呼起应用,则处理推送。

NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo) {
[self handleRemoteNotification:userInfo];
}

搞定收工!

发布于

在做新项目推送功能的时候,每当推送收到后应用就会按照预先的流程进行页面跳转,实际上我们预期的功能是:App在启动后收到推送不作处理。

那么解决方案就来了:

在 didReceiveRemoteNotification 中判断

[application applicationState] == UIApplicationStateActive 为真的时候return。

小问题随时记录,便于日后检索。

 

© 2008-2015 fanwenbin.com | Theme: 26
Powered by Wordpress