近期工作中遇到的一些问题总结

1.城市列表数据的更新,可以加入版本控制这个概念,每次进入时先比对本地版本号跟服务器版本号是否一致,不一致去网络进行请求来进行城市数据的更新.
2.解析字典的脚本,将字典字符串拷贝到txt文档,cd到其所在目录,然后命令行运行:cat readme.txt | awk -F’ = ’ ‘{print 1}' | sed 's/[" ]//g' |awk '{printf("@property (copy, nonatomic) NSString *%s;\n",1)}’
3.在iOS开发时,有时候遇到libc++abi.dylib handler threw exception这样的异常, 虽然在断点出加上了All Exceptions,也断到相应的代码了,但是没打印对应的日志,实际上不是这段代码的问题。因此不知道什么地方出错了。这时候可以用下面的代码来打印异常log.
@try{

}
@catch(NSException *exception) {
NSLog(@”exception:%@”, exception);
}
@finally {

}
4.安全检查问题.如果resdic不是字典,调用字典的方法就会崩溃,所以这种要进行安全检查: [resdic isKindOfClass:[NSDictionary class]
5.添加子视图控制器,有时候用这种比较方便. 添加子视图控制器:
**[self addChildViewController:pvc];
[self.view addSubview:pvc.view];
pvc.view = self.view.bounds;**
从父视图控制器移除:
**[self willMoveToParentViewController:self.parentViewController];
[self.view removeFromSuperview];
[self didMoveToParentViewController:self.parentViewController];**
6.创建订单,支付中间的时间控制问题.
用户点击创建订单,服务器设置一个超时时间十分钟,需要用户在十分钟内完成支付,直接去操作是没什么问题.但是如果不直接操作,第三方的支付超时时间跟服务器订单储存的超时时间不同步,可能出现的情况就是:服务器这边订单已经失效了,但是第三方支付仍可以支付,出现bug.有个预想的处理方法是:支付前进行查询订单操作,服务器返回一个超时时间,然后进行第三方支付时把这个超时时间设置过去.但是在做的过程中又遇到了新的问题:第三方支付的超时时间有限制,支付宝是1min~15d,微信是要大于五分钟.
解决方案:创建订单 跟调第三方支付创建订单 同时进行,然后第一次支付的时候设置超时时间.
7.一个东西一定要搭好架子,不能为了一时的速度和便捷去忽视代码质量,这样做的结果就是后期的维护花的时间是你之前节约的时间的很多倍.
8.推送环境分为:开发环境,生产环境. 服务器分为:开发环境,测试环境(生产前测试),生产环境. 通过Xcode直接运行的为开发环境(debug),如果是打包上传到网页或者APPStore的则为生产环境. 而服务器那端的环境在iOS端的体现则体现在链接地址上.
当前任职公司为创业公司,许多地方还不太完善,有些需要规范的地方没有规范到位,就会出现奇怪的bug.让测试人员进行测试的时候应该在电脑上接线安装debug版本,对应的服务器环境为测试环境.但由于满足公司领导的需求,申请了一个企业账号负责将应用打包放在测试网址上供公司内部人员使用,这时候对应的推送环境为:生产环境,但是服务器环境仍为测试环境. 就出现了推送收不到的情况,这个bug十分难找.

你可能感兴趣的:(工作日志,随记)