isKindOf 和 isMemberOf 的区别

在iOS 开发中,在遇到需要判断一个对象是否属于某个类的时候,我们经常会用到 isKindOf 和 isMemberOf 这两个方法。但往往我们稍不注意,就会将他们两个用混了。虽然有时候的结果是对的,但对于程序的健壮性来说却不是一个好的事情了。所以我们在平常的程序开发中,一定要做到代码所写的和心里所想的完全一致。这样才能保证我们的程序的质量。今天我们就来好好梳理下这两个判断方法的区别。 iskindOf 是用来判断一个对象是否为某个类以及该类的父类的对象 isMemberOf 只能用来判断一个对象是否当前类的对象 所以如果我们需要判断一个对象是否为某两个类的对象,只能使用 isMemberOf 来进行判断,这样才能保证不管以后这两个类怎么变,都可以得到正确的结果。 »

SDWebImage 加载图片失败后,不重新加载的解决

今天测试发现一个 bug,说在弱网的情况下,列表图片会加载失败,等网络好了后,重新下拉刷新,加载失败的列表图片,也无法进行加载。 根据测试反馈信息,我觉得应该是 SDWebImage 在图片加载失败后,给图片链接做了标记,不再重新加载了。于是查看 SDWebImage 源码,发现了 SDWebImageRetryFailed 这个枚举值,查看解释,恍然大悟。都是使用时没有仔细查看源码的锅,以后多注意,使用一个第三方的库,就得好好了解下他的源码: »

iOS 数据精度及大数的处理

在 iOS 开发中,我们很容易遇到使用 CGFloat 来标示浮点数,但这样的表示会造成精度失真。这时我们可以使用NSDecimalNumber来处理这个问题。 NSDecimalNumber是NSNumber的子类,可以处理大数运算及数据的精度问题。 大数相乘可能导致的问题 我们先上一段代码: NSString *priceStr = @""; NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:priceStr]; NSDecimalNumber *countNum = [NSDecimalNumber decimalNumberWithString:stringWithNSInteger(NSIntegerMax)]; number »

iOS 根据文本的高度获取文本的行数

今天APP改版,需要在cell里动态设置标题的高度,并且最大只能显示两行,仔细想了下这个问题。其实动态设置一个label的高度,主要还是能在label进行布局前,能够拿到label内容的行数。如果label内容是一行或者两行则直接显示,如果是两行以上则需要提前设置label的高度。 获取label内容的高度: 获取label内容的高度 获取label内容的行数 获取label内容的实际高度 //label 内容的高度 CGRect titleRect = [titleAttr boundingRectWithSize:CGSizeMake(titleLableMarginWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil] »

iOS,利用URL Schemes跳转到设置wifi、蜂窝移动网络页面

一、跳转到“设置” //>=iOS8.0可用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 二、跳转到设置的其它位置 1. 首先针对Info.plist添加如下选项 2. 调用跳转代码,如下 //跳转到“About”(关于本机)页面 NSURL *url = [NSURL »