记录和统计一下一些项目碰到的小问题,想起时会记录更新一下。一般都是通用部分,部分业务不涉及。
1.富文本下划线,在10.3系统不正常
1.人民币符号修改成英文
2.NSBaselineOffsetAttributeName : @(NSUnderlineStyleSingle)
http://blog.csdn.net/Yj_sail/article/details/70257128
2.定位地址语言问题,定位出的地址需要传中文到后台匹配返回区域编号,未定位成功,后台根据ip定位返回区域编号。
一个碰到三个坑:
1.非中文处理
2.定位服务没有开启,跳转到设置,系统版本判断问题,使用宏错误。正确使用iOS10。
3.后台数据库,市升级区,匹配失败,返回数字0,类型错误,约定是字符串,约定完没有做异常判断。
/// 使用iOS10 API时要加`ifdef IOS10_SDK_ALLOWED`的判断
#ifndef __IPHONE_10_0
#define __IPHONE_10_0 100000
#endif
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
#define IOS10_SDK_ALLOWED YES
#endif
#define iOS10 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) ? YES : NO)
// 地理位置反编码
- (void)reverseGeocoderWithLocation: (CLLocation *)location complation: (void (^)(CLPlacemark * placeMark, NSError * error))complationBlock
{
// 反编码
if (location) {
// 保存 Device 的现语言 (英语 法语 ,,,)
NSMutableArray *userDefaultLanguages = [[NSUserDefaults standardUserDefaults]
objectForKey:@"AppleLanguages"];
// 强制 成 简体中文
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"zh-hans",nil]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
CLGeocoder * geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
for (CLPlacemark * placeMark in placemarks) {
NSLog(@"%@", placeMark.postalCode);
}
if (!error) {
// 反编码成功
CLPlacemark * placeMark = [placemarks lastObject];
complationBlock(placeMark, nil);
} else {
complationBlock(nil, error);
}
// 还原Device 的语言
[[NSUserDefaults standardUserDefaults] setObject:userDefaultLanguages forKey:@"AppleLanguages"];
}];
}
}
3.tabbarvc 实例化 执行顺序不同
一般主tabbarvc不会带属性,但是二级tabbarvc就可以能带上属性了,赋值值发现慢了一拍,发现不一样了,具体见下链接,不展开说明了。
[http://blog.csdn.net/yuedong56/article/details/47123113]
网友评论