【提高】面试--三

1.重写一个类用继承还是分类?

继承

2.GCD异步加载一张图片

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

__block UIImage * image = nil;

dispatch_async(queue,^{

NSURL * url = [NSURL urlWithPath:@"xxx"];

NSData * data = [NSData dataWithContentsOfURL:url];

image = [UIImage imageWithData:data];

[self performSelectorOnMainThread:@selector(setImage:)withObject:image];

});

3.显式动画和隐式动画区别

显式动画是人为设置的,隐式动画是改变属性的时候自动生成。

显示动画的属性没有真正改变。

4.block使用注意事项

这个在第二篇有。

5.写一个@property(nonatomic,retain)nsstring * name的 set方法

注意点:不能用self,要使用下划线

6.单例的实现 略

7.

NSLog ( @"-----" );

    int a[5] = {1,2,3,4,5};

    int *p = (int *)(&a+1);

    printf("%d ,%d",*(a+1),*(p-1));

    NSLog(@"%@",@"sd------");

&a+1 加了一个数组 偏移了整个数组的大小

8.老板 前台 员工 老板告诉前台 让前台通知5点开会 谁是观察者?

前台

9.tableview优化

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

一般情况下我们都是在这里进行操作的。该代理方法可以多次执行重复绘制界面。所以绝大部分人都会在这里做一些代码处理

static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

然后加上判断。

但是如果cell内容很多,那么就涉及到性能的问题,还有网络不好的时候下滑会出现卡顿现象。

怎么做?异步加载?但是每一个都加上异步加载的话,如果线程过多还是会卡顿。特别是在下滑的时候。

于是可以利用父类scrollview代理方法处理这个问题。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

可以识别tableview禁止或者减速滑动结束的时候进行异步加载图片

//获取可见部分的对象
       NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];
        for (NSIndexPath *indexPath in visiblePaths)
        {
           //获取的dataSource里面的对象,并且判断加载完成的不需要再次异步加载
             <code>
        }

同时在cell绘制中也做限制
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

         if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
            {
               //开始异步加载图片
                <code>
            }

如果tableview 停止滑动的时候开始异步加载图片
最后也别忘记在内存紧张的情况下释放调所有的异步线程,以保证的你的app不会被系统强制关闭
- (void)didReceiveMemoryWarning{
//  释放调异步加载图片的线程以及所有图片资源对象
<code>
}

还有千万别忘记销毁的时候手动把所有的使用到的代理设置nil

第二点,图片需要缓存机制。

10.MKNetWorking AFNetWorking ASI基于什么写的?简述多个网络请求处理

留坑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值