一. 版本更新
- 获取本地版本号:
NSString *currentVersion = [[NSBundle mainBundle]objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
- 请求appstore信息:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appID] parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
[LPActivityIndicatorView hide];
NSArray * results = responseObject[@"results"];
if (results && results.count>0)
{
NSDictionary * dic = results.firstObject;
NSString *lineVersion = dic[@"version"];//版本号
NSString *releaseNotes = dic[@"releaseNotes"];//更新说明
//NSString * trackViewUrl = dic[@"trackViewUrl"];//链接
if ([lineVersion compare:self.currentVersion options:NSNumericSearch] == NSOrderedDescending)
{//线上版本大于本地版本
UIAlertController * alert = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"发现新版本%@",lineVersion] message:releaseNotes preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * ok = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:nil];
UIAlertAction * update = [UIAlertAction actionWithTitle:@"去更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
//跳转到App Store
NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8",appID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
}];
[alert addAction:ok];
[alert addAction:update];
[self presentViewController:alert animated:YES completion:nil];
}else if ([lineVersion isEqualToString:self.currentVersion]){
NSLog(@"%@", [NSString stringWithFormat:@"版本%@,已是最新版本!",lineVersion]);
}
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
二. SDWebImage加载验证码图片,并显示小菊花:
MBProgressHUD*hud = [ProgressHUD showLoadToView:kAppWindow];
UIImage *defaultImage = [UIImage imageNamed:@"placeholder"];
NSURL *urlImage = [NSURL URLWithString:@""];
[self.imageView sd_setImageWithURL:urlImage placeholderImage:defaultImage options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
[hud hideAnimated:YES];
}];
SDWebImageRefreshCached = 1 << 4,:一个图片缓存了,还是会重新请求.并且缓存侧略依据NSURLCache而不是SDWebImage.URL不变,图片会更新时使用
四. Xcode中SVN自动忽略.a文件的解决方法:
- 打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车;
- 之后再输入如下命令:svn add libWeChatSDK.a,回车;
- 之后会出现:A (bin) libOCMock.a 表示添加成功,打开Versions就可以看到,刚才添加的.a文件,此时就可以手动上传了。
五. 11.3 低版本Xcode不支持高版本iOS真机调试解决方法:
- 复制路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
shift+command+G 打开
-
复制iPhoneOS.sdk,改名11.3
image - 复制路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
image
创建新的真机需要的版本,然后将11.3真机调试包拷贝到文件夹
11.3真机调试包链接 密码: wpw8 - 修改路径SDKSettings.plist文件中所有版本相关的数字为11.3
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
image
可能无法直接修改,可以拷贝一份,然后修改之后再覆盖上去,然后再重新启动Xcode,可能设备连接会处于繁忙状态,clear一下,或者重新插一下电源,或者手机重启一下就好
六. iOS dateFromString: 方法真机返回nil:
在模拟器上正常运行,在真机上运行返回nil,设置NSDateFormatter对象的locale属性.
+(NSString*)getTimeWithString:(NSString*)string Format:(NSString*)format{
// NSDate * date = [NSDate dateWithTimeIntervalSince1970:[string longLongValue]/1000];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formattersetDateFormat:@"MMM dd, yyyy KK:mm:ss aa"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_CN"];
[formattersetLocale:locale];
NSDate*date = [formatterdateFromString:string];
if(format) {
[formattersetDateFormat:format];
}else{
[formattersetDateFormat:@"YYYY-MM-dd HH:mm:ss"];
}
return [formatterstringFromDate:date];
}
关于NSDateFormatter的格式
G:公元时代,例如AD公元
yy:年的后2位
yyyy:完整年
MM:月,显示为1-12
MMM:月,显示为英文月份简写,如Jan
MMMM:月,显示为英文月份全称,如Janualy
dd:日,2位数表示,如02
d:日,1-2位显示,如2
EEE:简写星期几,如Sun
EEEE:全写星期几,如星期日
aa:上下午,AM / PM
H:时,24小时制,0-23
K:时,12小时制,0-11
m:分,1-2位
mm:分,2位
s:秒,1-2位
ss:秒,2位
S:毫秒
七.将一个对象的值完整的赋给另一个对象:
NSDictionary *dict = [model mj_keyValues];
NSObject *newModel =[NSObject new];
[newModel setValuesForKeysWithDictionary:dict];
网友评论