发布于

  • 问题:

    项目的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:,然后检查图片是否存在。

发布于

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

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

解决方案:

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

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

搞定收工!

发布于

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

那么解决方案就来了:

在 didReceiveRemoteNotification 中判断

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

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

 

发布于

前一阵子项目中加入了生成/识别二维码的功能,于是引入了ZXing这个库,于是悲剧了。。。

编译提示<ZXingObjC/ZXingObjC.h> file not found

很明显就是路径没找到嘛,于是各种找路径。

在项目的Targets-Build Settings-Search Paths中加入

$(SRCROOT)/../..   并且选择成recursive。

OK。

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