XIB 加载要点
- 通过xib加载view会调用
- (void)awakeFromNib
方法 - xib加载view,点击view触发事件
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
判断字符串是否纯数字
+ (BOOL)isPureInt:(NSString *)string{
NSScanner* scan = [NSScanner scannerWithString:string];
int val;
return [scan scanInt:&val] && [scan isAtEnd];
}
参数越界报错
'NSInvalidArgumentException', reason: '-[NSInvocation setArgument:atIndex:]: index (2) out of bounds [-1, 1]'
*** First throw call stack:
- 其中NSInvocation代表回调,调用的意思,一般值调用某种方法,setArgument:atIndex代表某种参数。
- 这个报错意思是参数越界
AFN知识补充
- block 强引用
[AFHTTPSessionManager manager]GET:<#(nonnull NSString *)#> parameters:<#(nullable id)#> progress:<#^(NSProgress * _Nonnull downloadProgress)downloadProgress#> success:<#^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject)success#> failure:<#^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)failure#>
- 如果使用强引用的block 访问外部对象,则只要执行完block代码才会挂掉,比如用户在网络还没读完数据就退出界面,block中的网络读取还会继续进行
- 解决方法: __weak typeof(self) weakSelf = self;
- 取消请求
[AFHTTPSessionManager manager] invalidateSessionCancelingTasks:YES];
设置圆形图片
- 可以扩展uiimage简化代码
- 利用Quartz 2D
// 开启图形上下文
UIGraphicsBeginImageContext(self.size);
// 上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 添加一个圆
CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
CGContextAddEllipseInRect(ctx, rect);
// 裁剪
CGContextClip(ctx);
// 绘制图片
[self drawInRect:rect];
// 获得图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
// 关闭图形上下文
UIGraphicsEndImageContext();
button 取消高亮状态
- 可以使用UIControlStateDisabled属性
- 可以重写UIBUtton的setHightlight方法,但是不使用super方法,这样button不会对button进行高亮处理
包含字符串
[字符串 containString:@”“] 判断字符串是否包含某个字符串,不指定位置,返回值为BOOL
[字符串 hasSuffix:@”“] 判断字符串是否以某字符串结尾,
[字符串 hasPrefix:@“”] 判断字符串是否以某字符串开头