iOS - 功能 & 问题 - 持续更新

最后更新时间 - 2018.02.08

问题或功能的记录


  1. 使用字面量转换 CGRect、CGSize、CGPoint 为 NSValue
用法:@(value)

CGRect rect = CGRectMake(0, 0, 100, 200);
CGSize size = CGSizeMake(100, 200);
CGPoint point = CGPointMake(50, 100);
NSValue *value = @(point);

NSLog(@"%@", value);
NSLog(@"%@", @(point));

  1. 下载文件获取不到Content-Length
// 需要在请求头增加 Accept-Encoding
[request setValue:@"Identity" forHTTPHeaderField:@"Accept-Encoding"];

  1. GCD 延迟操作可以取消
dispatch_block_t block = dispatch_block_create(0, ^{
    NSLog(@"时间到啦!");
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), block);
// 取消block的执行
dispatch_block_cancel(block);

  1. NSMutableData 在获取 bytes 的时候不稳定,可能出现奇怪的问题,最好 copy 一下,使用不可变的对象来获取 bytes。
NSData * data = [mutableData copy];
const char * bytes = [data bytes];

  1. 用户截屏通知
UIApplicationUserDidTakeScreenshotNotification

  1. 计算 size 在 rect 内居中的矩形
AVMakeRectWithAspectRatioInsideRect(CGSizeMake(100, 30), CGRectMake(0, 0, 300, 200));

  1. 使用字面量将 char * 类型快速转换为 NSString 类型;
const char *c = "string";
NSString *str = @(c);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,222评论 30 472
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 1,742评论 0 3
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    FF_911阅读 1,434评论 0 3
  • 转自:http://www.code4app.com/blog-866962-1317.html1、设置UILab...
    MMOTE阅读 1,719评论 1 1
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事...
    irenb阅读 5,265评论 1 21