觅食邦 开发总结

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:@“”] 判断字符串是否以某字符串开头

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,444评论 2 4
  • 技术无极限,从菜鸟开始,从源码开始。 由于公司目前项目还是用OC写的项目,没有升级swift 所以暂时SDWebI...
    充满活力的早晨阅读 12,681评论 0 2
  • 1、登录(文本输入、按钮交互、基于网络的交互) 2、刷新界面:(表视图) 1>小部分应用程序数据来源于本地 2>更...
    炙冰阅读 793评论 0 1
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,705评论 2 7
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,419评论 0 6