美文网首页
08-27小记

08-27小记

作者: 檐下风铃听雨声 | 来源:发表于2020-08-27 19:25 被阅读0次

1.而苹果文档指出,cornerRadius只会默认设置backgroundColorborder的圆角,而不会设置content的圆角,除非同时设置了layer.masksToBoundstrue(对应UIView的clipsToBounds属性)。

1、指出以下两种 property 的写法,分别可能造成什么隐患?

@property (copy) NSMutableArray * array1;
@property (atomic, strong) NSArray * array2;

因为copy策略拷贝出来的是一个不可变对象,然而却把它当成可变对象使用,很容易造成程序奔溃
//如:-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance 0x7fcd1bc30460
// copy后返回的是不可变对象(即 arr 是 NSArray 类型,NSArray 类型对象不能调用 NSMutableArray 类型对象的方法)

这里还有一个问题,该属性使用了同步锁,会在创建时生成一些额外的代码用于帮助编写多线程程序,这会带来性能问题,通过声明nonatomic可以节省这些虽然很小但是不必要额外开销,在iOS开发中应该使用nonatomic替代atomic

copy关键字.png

2、如何用GCD和SDWebImage的SDWebImageDownloader 的

  • (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
    options:(SDWebImageDownloaderOptions)options
    progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
    completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;

在异步非线程中,实现完成串行下载组图片文件。即一个完成再才开始下载第二个。
SDWebImageDownloaderCompletedBlock和SDWebImageDownloaderOptions 参数无需关心。

3、"一个酒窖里有一千桶酒, 其中有一桶是毒酒 , 白鼠喝了毒酒一个星期后会死去。 现在问给你多少只白鼠(最少的),在一个星期内确定那桶毒酒。(写出算法思想)

如对1000桶按1~1000编码,需要10位二进制数。

因此只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。

即10只老鼠按以下编码:

第一只 00000 00001

第二只 00000 00010

第三只 00000 00100

第四只 00000 01000

...

第十只 10000 00000

每只老鼠只喝其编码与酒编码做位与运算非0的酒。如果毒酒的编码在某一位为1,则监控该位的老鼠必喝,结果为1.

即把10只老鼠的结果,按位填入一个10位二进制数中,其结果即为毒酒编号。

例如:编号为10001 00011的酒是毒酒。则对应的只有第一只,第二只,第六只,第十只死亡。其对应位数置1,即为10001 00011

4、试写一下给类别增加属性的实现。

-(void)setName:(NSString *)name{
    /*
     objc_AssociationPolicy参数使用的策略:
     OBJC_ASSOCIATION_ASSIGN;            //assign策略
     OBJC_ASSOCIATION_COPY_NONATOMIC;    //copy策略
     OBJC_ASSOCIATION_RETAIN_NONATOMIC;  // retain策略
     
     OBJC_ASSOCIATION_RETAIN;
     OBJC_ASSOCIATION_COPY;
     */
    /*
     关联方法:
     objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy);
     
     参数:
     * id object 给哪个对象的属性赋值
       const void *key 属性对应的key
       id value  设置属性值为value
       objc_AssociationPolicy policy  使用的策略,是一个枚举值,和copy,retain,assign是一样的,手机开发一般都选择NONATOMIC
     */
    objc_setAssociatedObject(self, KEY, name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
-(NSString*)name{
    return  objc_getAssociatedObject(self, KEY);
}

5、在一个数组中找出前4个最大的数?请设计一个最优的算法。

这个题是对于快速排序的考察。

6、微博每天有10亿条记录,每条记录10-100K。现在你有一台内存为4G的电脑,计算播放最多的一条微博

相关文章

  • 08-27小记

    1.而苹果文档指出,cornerRadius只会默认设置backgroundColor和border的圆角,而不会...

  • 08-27

    继续继续✌✌ 一、日常任务 1.早起 在7点前起床,并在营里打卡,未完成。今天是真起晚了。 2.阅读 听书,完成。...

  • 08-27

    【2019】238-12/365 1、 不是rmb,不需要被所有人认可 早上因为以前同事的评价,有点不高兴了。苗头...

  • 08-27

    1.早起阅读1H爱是什么,是回应,是看见,是链接,作为一个能量体,我们犹如一个章鱼,会不断伸出自己的触角,如果这个...

  • 今日08-27

    一段时间不写东西,脑子就会觉得有些乱,然后就是不停地有焦虑感。昨天晚上的睡眠监测数据显示了一个笑脸,深睡有一个小时...

  • 08-27【今日剽悍】

    【08-27今日剽悍】 80双鞋,不是财富,而是一种负担。 没有彻底整理的话,我甚至不知道有多少双鞋。 这大概反应...

  • 结石中药配方

    鸡内金搭配它健脾化痰、消除结石结节与息肉!很多人不知道怎么用 每日养生谈 08-27 12:08《养生堂》官方帐号...

  • 08-27基金记录

    持仓不动。 今天迎来了超跌之后的反弹,但是成交量不足,资金的参与热度不够。 前期跌得很惨的科技板块今天发力了,前期...

  • Web版扫雷开发小记(3)

    前篇: web版扫雷开发小记(1)web版扫雷开发小记(2)web版扫雷开发小记(3)web版扫雷开发小记(4) ...

  • 2018-09-03 第一周时间管理学习复盘

    第一周复盘(08-27~09-02) 踏出校园后,似乎就没有正式进入过学习圈,在广大学子开学前给自己下了一个决定,...

网友评论

      本文标题:08-27小记

      本文链接:https://www.haomeiwen.com/subject/fsexsktx.html