iOS项目开发中的零碎经验总结

  • 导航栏的栈顶控制器为UIViewCOntroller时,控制器view的y值要加上64像素
  • SDWebImage框架支持gif图片播放
    • 首先,得知道iPhone默认是不支持gif播放的,
    • 此框架内部用到ImageIO框架,实现原理就是将一个大的gif图片解析成多张图片,然后赋值给UIImageViewanimationImages属性来实现gif图片的播放
  • 保留n位小数的写法:%.nf
  • 在NSString转义百分号:%%
    NSLog(@"已下载:%.2f%%", (小数值) * 100);
    
  • frame赋值简写
    (CGRect){CGPointZero,image.size}
    
  • iOS中的生成随机数方法
    • 获取一个随机整数范围在:[0,100)包括0,不包括100
      // 方法1
      int x = arc4random() % 100;
      // 方法2
      int x = arc4random_uniform(100);
      
    • 获取一个随机整数范围在:[500,1000],包括500,包括1000
      // 方法1
      int y = (arc4random() % 501) + 500;
      // 方法2
      int y = arc4random_uniform(500 + 1) + 500;
      
    • 封装获取一个随机整数,范围在[from,to],包括from,包括to
      // 范围在[from,to]
      -(int)getRandomNumber:(int)from to:(int)to
      {
        return arc4random_uniform(to - from + 1) + from;
      //    return (arc4random() % (to - from + 1)) + from;
      }
      
  • Objective-C对象的属性不能直接取地址
    • 错误演示
      NSLog(@"[UIApplication sharedApplication].keyWindow-->%p", &[UIApplication sharedApplication].keyWindow);
      
    • 正确做法
      UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
      NSLog(@"[UIApplication sharedApplication].keyWindow-->%p", &keyWindow);
      
    • 原因分析:因为属性调用的本质是调用生成的get方法,而不是变量本身,所有这里会报错

results matching ""

    No results matching ""