OC零散知识点

判断日期是否是昨天(Nsdate对象方法)

- (BOOL)isYesterday {
    //生成只有年月日的日期对象
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"yyyy-MM-dd";
    
    NSString *selfString = [fmt stringFromDate:self];
    NSDate *selfDate = [fmt dateFromString:selfString];
    
    NSString *nowString = [fmt stringFromDate:[NSDate date]];
    NSDate *nowDate = [fmt dateFromString:nowString];
    
    //比较差距
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
    NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];
    
    return cmps.year == 0
    && cmps.month == 0
    && cmps.day == 1;
}

图片拉伸方法

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度。
根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸。

注意:可拉伸的范围都是距离leftCapWidth后的1竖排像素,和距离topCapHeight后的1横排像素。

参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。

注意:只是对一个像素进行复制到一定宽度。而图像后面的剩余像素也不会被拉伸。

控制代码在整个软件生命周期中只运行一次

把下面代码中的UD换成[NSUserDefaults standardUserDefaults]就行了,也可以像我一样写个宏(#define UD [NSUserDefaults standardUserDefaults])

    if (![UD boolForKey:@"everLaunched"]) {
        [UD setBool:YES forKey:@"everLaunched"];
        [UD setBool:YES forKey:@"firstLaunch"];
    }
    else{
        [UD setBool:NO forKey:@"firstLaunch"];
    }

    if ([UD boolForKey:@"firstLaunch"]) {
        //第一次运行,以游客登录
       do........
    }

根据UIColor生成对于UIImage

- (UIImage *)imageWithColor
{
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [self CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

将数组按目前的顺序反过来排列

arr = [[arr reverseObjectEnumerator] allObjects];

取数组中的最大值(数组内容是NSString也可以使用)

NSNumber* max = [newCountArray valueForKeyPath:@"@max.intValue"];

将数组按从小到大排列(数组内容是NSString也可以使用)

newCountArray = [newCountArray sortedArrayUsingSelector:@selector(compare:)];

让tableview滚动到第一行

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

推荐阅读更多精彩内容

  • 1.不可变数组转变为可变数组声明实例变量的数组 必须记得实现 对于遍历数组找到对象后 如果还需要查找 记得先结束 ...
    小新xin阅读 759评论 0 1
  • 技术无极限,从菜鸟开始,从源码开始。 由于公司目前项目还是用OC写的项目,没有升级swift 所以暂时SDWebI...
    充满活力的早晨阅读 12,694评论 0 2
  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低...
    ShanJiJi阅读 1,601评论 0 20
  • 一、需求来源 最近在做一个就业信息发布网站,发布每天的南北校宣讲会信息。此时前端模型已经搭建好,用的是HTML+C...
    treker阅读 6,568评论 4 30
  • 总说世界上好人比坏人多,可是,这是真的吗? 有天下班,习惯带着耳机走在路上。过一个马路,绿灯,走的慢。右转的一个公...
    安小安奇遇记阅读 146评论 0 0