案例一:同一个公司的项目登录了A项目,B项目怎么获取到的用户信息
实现方式:
1.后台建立公用的用户数据表实现资料共享。如同一个公司的两个app A和B. 在A中注册登录注册后。完成了认证、个人资料等信息。同一用户使用B app时不需要再次注册,可直接使用A app已注册的账号密码登录。后台去公共表中查找,存在就登录成功并返回用户信息、认证信息。不存在提示注册。(如果在a app中使用的是三方登录 于是一样的。因为三方登录时三方会授权app 并给与相关参数,a app 还是拿了这些参数进行了账号注册和登录,只不过注册登录合在一起了)
2.用户使用A app 注册时。将基本的账号密码等参数加密存钥匙串。B被打开时直接去钥匙串中取出账号密码等后直接走登录或者注册登录逻辑。(因为钥匙串中的内容任何app都能访问)
3.用户的UUID(存钥匙串),注册A app时带入UUID 参数一并存入共享用户表。同一用户打开B app时,B项目直接拿着钥匙串中的UUID,去后台共享用户参数表查找。
4.app 之间可互相授权登录(仿照QQ,微信等的授权)
5.动态库
案例二:在viewdidload里new一个对象、然后赋值给weak的属性、然后在viewwillappear里面打印weak那个属性能打印么?
答:弱引用、viewdidload里new的对象就相当于局部变量、出了这个函数就除了作用域、就销毁了、所以weak的属性打印的是nil
案例三:一款app的性能
1. App crash率的行业平均水平0.5%
一般好的公司指标为0.1%,分母是日uv,分子是一天的crash个数
不同功能的app的崩溃率不同,一般游戏类的app 崩溃率 > 视屏app > 普通app (主要是 内层引起的崩溃)
2. 线上代码的crash 可根据统计工具友盟/bugly等统计的信息 进行修复
3. 解决方案:通过制定影响到0.1%的单子都要进行修复,把排名靠前的crash解决掉
4. 开发准则制定,培训开发工程师,养成好的编码习惯
5. CodeReview来加强好的编码习惯
6. 测试中持续的利用空闲时间跑自动化脚本 可以多发现Crash
7. 常规的app 使用高峰时间:中饭期间?晚饭期间?晚上时间?
8.手机:兼容性机型