不在被虐中成长就在被虐中死亡

今天又被虐了,哎,平时太不注意细节了再见算是提了个醒吧,记录下来不要再被绊倒第二次

1.视图完整生命周期,First VC是从xib文件创建的,所以走了initWithCoder



2.判断一个数组是否是有序的

这道题当时脑子秀逗,一直想找到什么简便的方法,头脑一热还说出了使用快速排序对数组排序,一旦走入了交换两个位置的数字的分支,就可以返回,说明这个数组无序,但是仔细想想,快速排序平均情况下的时间复杂度为O(n * logn),而循环遍历数组的话时间复杂度为O(n),并没有优势,还是人家说得对,没什么捷径,网上看到一个比较有意思的递归解法:
// Recursive approach to check if an
// Array is sorted or not
 
class CkeckSorted
{
    // Function that returns 0 if a pair
    // is found unsorted
    static int arraySortedOrNot(int arr[], int n)
    {
        // Array has one or no element or the
        // rest are already checked and approved.
        if (n == 1 || n == 0)
            return 1;
      
        // Unsorted pair found (Equal values allowed)
        if (arr[n-1] < arr[n-2])
            return 0;
      
        // Last pair was sorted
        // Keep on checking
        return arraySortedOrNot(arr, n-1);
    }
     
    // main function
    public static void main (String[] args) 
    {
        int arr[] = {20, 23, 23, 45, 78, 88};
        int n = arr.length;
        if (arraySortedOrNot(arr, n)!=0)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}

3.多个Timer在cell上怎么处理

正常的思路是为了低耦合,将Timer封装在Cell中,每个cell上的Timer都是独立的触发自己的方法,但是问题很快就会显示出来:
①cell的复用机制会导致显示错乱,窜行等问题。
②每个cell一个Timer,这个时候的内存消耗很可观
所以这种方式行不通,那么就将Timer放到Controller中去,这样好处就是只需要一个Timer就可以了,思路就是C中的Timer每1秒触发一次,触发后走响应方法,在方法中修改数据源,也就是每个Cell的倒计时剩余时间,修改完数据源,刷新tableView即可。

4.请求过来的Dic里Key特别多的话,如何初始化Model

用runtime获取类的所有属性,然后遍历字典为model赋值,但是他又问我如果有一百万个属性呢。。。我懵逼了(请把这种后台开除好吗?),如果谁能看出来面试官要考察的知识点,或者知道解决办法,务必留言,谢谢。

5.如何收集APP的崩溃信息

①通过Xcode自带的Product->Archive 然后在Tab切换标签选择Crash即可下载查看对应版本的奔溃日志
②使用第三方例如:友盟移动统计,Mob移动统计,百度移动统计,首先在第三方后台查看错误列表,然后下载崩溃日志文件,使用第三方自有的Crash分析工具对日志文件进行分析,定位到Crash行数后仔细分析是哪句代码引起崩溃。
③自己实现应用内崩溃收集并上传服务器。
④使用Window->Devices中直接查看某个设备的崩溃信息,配合dSYM文件和symbolicatecrash生成一个新的.crash文件,里面会显示崩溃的文件和行数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值