11 jasonblog

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1k+

WWDC18《What's new in LLVM》小记

TL;DR上周末看的部分WWDC18的视频,不过当时没来得及做些记录。 我个人的历年习惯通常是先浏览下目录,再挑一部分感兴趣的先看——通常是《What’s new in Cocoa Touch》和《What’s new in LLVM》,后续的再根据主题和实际需要再进一步了解,比如关于如何提升开发效率的。 这里主要记录下WWDC18《What’s new in LLVM》中我个人的一些观后...

2018-06-19 08:49:40

在使用CocoaPod的Xcode工程中断点没有调试信息的问题跟进

通常客户端产品至少都会有Debug和Release两种编译配置,在编译Release版本中会进行一些优化,以减少最终产品的体积。 比如,在Release版本中会对代码执行步骤进行优化(如O1、O2等),这会导致有些代码被优化省略掉,有时无法单步调试;另外就是会去掉符号信息,这会导致断点调试时没有符号信息,所以才会有CallStack的捕获和解析内容。由于千牛iOS端会有不同版本,分别面向内部开发者

2017-03-03 12:17:13

再踩Python的Shallow Copy

最近人工智能很火,Python也不可避免地跟着再火一把。 有天在微博上刚好看到这么一段话:@寒冬winter:我来谈两个新标准:写出一个动态规划(最大子段和)再谈算法,写出模拟退火、遗传和神经网三大算法之一的小demo再谈AI。这不过分吧?由于我自己也是比较注重基础的,所以挺赞同这句话的。虽然现在算法工程师经常自嘲为“调参工程师”,但那也是人家自嘲,好比写工程代码的研发工程师,也可以自嘲为“搬砖工

2017-01-25 12:02:15

Weex入门与进阶指南

原文地址:https://yq.aliyun.com/articles/57554前言相比较于React Native的“Learn once, write anywhere”,Weex的口号是“Write once, run everywhere”。考虑到React Native比较任性的向下兼容性,我们也引入了Weex做一番了解。本文主要分为以下几个部分:构建Hello World程序;集成

2016-07-08 18:22:25

记一次帮同事排查由命名引发的问题

今天同事在群里发了一个问题,问有没有人碰到类似如下的问题:-[UILabel stringByTrimmingCharactersInSet:]: unrecognized selector sent to instance 0x7ff08c865970一位同事第一反应是不是对象被释放了,出现了野指针?然而加上异常断点、开启Zombie诊断后,并没有带来有用的信息。我转身问是不是必现的?回答是的。

2016-04-20 21:20:03

从NSTimer的失效性谈起(二):关于GCD Timer和libdispatch

一、GCD Timer的创建和安放虽然GCD Timer并不依赖于NSRunLoop,但是有没有可能在某种情况下,GCD Timer也失效了?就好比一开始我们也不知道NSTimer对应着一个runloop的某种mode。先来看看GCD Timer的使用方法:dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TI

2016-03-15 20:34:15

从NSTimer的失效性谈起(一):关于NSTimer和NSRunLoop

一、NSTimer的失效性在iOS中要设置一个定时器的通常做法是调用如下API:+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;这个API会创建一个NSTimer对象,将其添加到当前runloop的def

2016-03-15 20:33:07

iOS中线程Call Stack的捕获和解析(二)

上接iOS中线程Call Stack的捕获和解析(一)。1. 部分参考资料做这一块时也是查阅了很多链接和书籍,包括但不限于:《OS X ABI Mach-O File Format Reference》《Mach-O Programming Topics》《程序员的自我修养》——这本几年前读过的,又一次从书架上拿下来温习,主要是用来对比确认;《The Mac Hacker’s Handboo

2015-11-18 16:36:55

iOS中线程Call Stack的捕获和解析(一)

这里对上个月做的一个技术项目做部分技术小结,这篇文章描述的功能和我们在使用Xcode进行调试时点击暂停的效果类似。一、获取任意一个线程的Call Stack如果要获取当前线程的调用栈,可以直接使用现有API:[NSThread callStackSymbols]。但是并没有相关API支持获取任意线程的调用栈,所以只能自己编码实现。1. 基础结构一个线程的调用栈是什么样的呢?我的理解是应该包含当前线程

2015-11-18 16:35:39

Auto Layout和UILabel

前段时间千牛iOS版本也从iOS 6.0开始支持,所以可以正式引入Auto Layout来进行界面布局。 这里记录下在UILabel上应用Auto Layout进行布局的过程。一、业务场景用三个UILabel展示一件商品的基本信息:标题,价格,销量;标题排在最上面,左右两边至少留出20的边距,可以换行;价格排在标题下面,左边与标题对齐,顶部和标题留出10的边距;销量排在价格右边,字体略小,

2015-05-25 16:40:09

在iOS中读取通讯录中联系人电话号码时需要注意的版本区别

今天遇到一个问题,发现同一个联系人的电话号码有时候读取得到,有时候读取不到。后来发现在iOS 8上是正常工作的,但是在iOS 7.1上获取到的值为空(也可能是iOS 8之前的所有版本,没有全部验证过)。123456789101112ABAddressBookRef abRef = ABAddressBookCreateWithOptions(NULL, NULL);CFArrayRef cfPer

2014-12-03 15:36:32

读《反欺骗的艺术》有感

上个月月底参加了CSDN的读书活动,选取了《反欺骗的艺术——世界传奇黑客的经历分享》一书。作者凯文米特尼克这个名称太吸引眼球了,而译者潘爱民老师同样是大名鼎鼎。阅读这本书的时候正值我厂IPO期间,刚好公司内部也在强调信息和数据安全的重要性,受这些因素的影响,我最近两个月也没有在外部博客上(主要是CSDN博客)写文章。接受完公司安全培训后,又阅读了该书,安全、防信息泄露的意识更加深刻了,当时脑子里面

2014-09-23 00:47:26

再谈multistage text input(中文输入法)下UITextView的内容长度限制

之前写过一篇《如何更好地限制一个UITextField的输入长度》,在文章最后得到的结论是可以直接使用UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;进行监听,截断超出maxLength的部分。所以后来我在处理UITextView的内容长度时,也直接参考这个方法:[[NSNotificationCenter def

2014-07-04 15:50:53

利用objc的runtime来定位次线程中unrecognized selector sent to instance的问题

昨天我们一个只有一行错误信息的问题:-[NSNull objectForKey:]: unrecognized selector sent to instance 0x537e068由于这个问题发生在次线程,所以没有太有用的堆栈信息,而是只有简单的SIGABRT信息:考虑到unrecognized selector sent to instance这类问题是由于向某个对象发送了未实现的消息,这个过

2014-06-17 15:32:16

Core Data浅谈系列之十 : 关于数据模型中实体的属性

之前写了《Core Data浅谈系列汇总》,今天稍微回顾了下,做些补充。在这个系列的第一篇《基础结构》中(2013年1月份的文章,时间过得好快啊!),有简单带过Entity的Attribute:数据类型、布尔值统一用NSNumber来表示;字符串类型用NSString表示;时间类型用NSDate表示;二进制数据类型用NSData表示;非标准类型用Transformable来表示;而Attribut

2014-06-08 20:23:37

随手记Swift基础和Optional Type(问号?和感叹号!)

距离Apple推出Swift已经有几天了,网上也时不时出现“急招Swift程序员,要求有一天工作经验”的帖子。看到Swift,除了苹果放的另外一门语言的链接(http://swift-lang.org/),还可能联想到Taylor Swift,或者铃木雨燕。这几天网上关于Swift的话题和材料应该迅速膨胀,比如StackOverflow的相关标签,还有知乎上的一些相关讨论。关于Swift的推出,我

2014-06-06 15:07:48

随手记UIKit Dynamics

趁着今年WWDC的开展,我又回顾了下去年的一些内容,发现有些新特性博客上都没有记录,想想iOS 8都出来了,iOS 7的特性再不随手记录下都晚了 :)参考WWDC 2013的Session Videos《Getting Started with UIKit Dynamics》和《Advanced Techniques with UIKit Dynamics》,随手记了以下几点:UIKit Dyna

2014-06-03 23:53:32

再谈iOS 7的手势滑动返回功能

之前随手写过一篇《使用UIScreenEdgePanGestureRecognizer实现swipe to pop效果》,挺粗糙的。现在使用默认模板创建的iOS App都支持手势返回功能,如果导航栏的返回按钮是自定义的那么则会失效,也可以参考这里手动设置无效。if ([self.navigationController respondsToSelector:@selector(interactiv

2014-06-03 20:00:13

Inside ARC — to see the code inserted by the compiler

这里的主题是“Inside ARC”,顾名思义,主要是探讨ARC在我们看不见的地方为我们做了什么事情,以及怎么做的。出发点是对底层实现的兴趣,不了解这些也不妨碍写好代码,了解一点应该有益。

2014-05-23 11:12:42

使用Objective-C处理UBB标签

有这么个业务需求,抽象出来如下:展示一条文案,比如“某某人做了某某事”,这里的“某某人”是一个用户的昵称;用户可以修改昵称,修改过后再看之前的文案,“某某人”这个昵称需要跟着变化;文案数据从服务端获取;根据上述需求,讨论确定了服务端下发的“某某人”采用[UserId]uid[/UserId]这样的UBB标签格式,客户端进行解析和替换。要解析内容,首先要匹配指定的UBB标签,

2014-05-23 10:06:29

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!