layout: post
title: "Git 上传代码"
date: 2017.12.05
tag: iOS 总结
Git 快捷上传代码
# 之前一直用的是SourceTree、SVN 不过都是公司服务器本地上传
想过最早用的就是GitHub 就想过国区里有没有,结果就找到了“马云”大大
经过了解后码云给我的感觉就是方便快捷的保存项目以及合作开发
所以今天就写了一篇关于 Git 的文章,以供学习
本地项目上传至码云
- 在码云上点击 “新建项目”
- 创建成功后,打开终端 cd 到 文件里
- git init 初始化仓库
- git remote add origin “URL”(码云上新建项目点进去克隆或者复制的链接)
- git pull origin master(把分支上的文件拉下来)
- 把要上传的项目移动到刚刚从云端抓取下来的文件夹内
- git add . 或者 git add + 被拖入的项目名(保存到缓存区)
- git commit -m "要编辑的内容"(推送到本地库种)
- git push origin master (推送到远程仓库也就是码云)
支付宝
Webkit (WKUIDelegate)
- UIWebView 是iOS 2 就有的 UIKit 中非常古老的加载网页控件
- WKWebView 是 iOS 8 之后才有的 WebKit 中的内容。
- 苹果推出 WKWebView 就是为了替换旧的 UIWebView
1. UIWebView 的优缺点
- UIWebView 会引起内存泄露,这是它系统本身的问题。
- 用 UIWebView 加载大数据资源时,内存峰值、内存都会暴增,同时CPU电量消耗也较高。
- UIWebView 支持缓存 和 NSURLProtocol 拦截。
2. WKWebView 的优缺点
- 拥有高达 60FPS 滚动刷新率及内置手势。
- 支持了更多的 HTML5 特性。
- 高效的 app 和 web 信息交换通道。
- 允许 JavaScript 的 Nitro 库加载并使用, UIWebView 中限制了。
- 提供加载网页进度的属性。
- WKWebView 网页加载速度有提升,更快(占用内存可能只有 UIWebView 的1/3~1/4)。
- 没有缓存,更为细致地拆分了 UIWebViewDelegate 中的方法。//我建议如果对缓存不高的页面可以使用,用户体验会提高很多。
- WKWebView 不支持缓存 和 NSURLProtocol 拦截.
3. UIWebView 的三种 load 方法
loadRequest
- 加载网络资源
UIWebView *web = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addsubView: web];
[web loadRequest:[NSURLRequestrequestWithURL:[NSURL RULWithString:@"https//:www.qiangwan.com"]]];
// http请求需要在info文件里配置一下,APP Transport Security -> Allow Arbitrary Loads = YES
- 除了加载网络资源外,loadRequest 还可以加载本地资源
// str2 == str3 != str1 str1多了file:
NSString *str1 = [[[NSBundle mainBundle] bundleURL] absoluteString];
NSString *str2 = [[NSBundle mainBundle] bundlePath] ;
NSString *str3 = [[NSBundle mainBundle] resourcePath] ;
NSString *path = [str3 stringByAppendingPathComponent:@"test.html"];
[web loadRequest:[NSURLRequestrequestWithURL:[NSURLfileURLWithPath:path]]];
loadHTMLString
- 这个方法用于直接加载 html 代码
- 如果 html 没有存在文件夹中,推荐使用这种方法
UIWebView *web = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:web];
NSString *HTMLData = @"<hn>Hello World</hn>";
[web loadHTMLString:HTMLData baseURL:nil];
- 当然你也可以用这个方法从本地 html 读取代码,然后加载。但此时请注意 baseURL 要传对,否则 html 中引用的资源是找不到的。
NSString *str3 = [[NSBundle mainBundle] resourcePath] ;
NSString *path = [str3 stringByAppendingPathComponent:@"test.html"];
NSString *htmlStr = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[web loadHTMLString:htmlstrbaseURL:[[NSBundlemainBundle] bundleURL]];
loadRequest 和 loadHTMLString 都可以加载本地资源,苹果给出了解释:To help you avoid being vulnerable to security attacks, be sure to use this method to load local HTML files; don’t use loadRequest:。
意思是,为避免受到安全攻击,一定要用这种方法来加载本地HTML文件;不要使用 loadRequest。如果不从 html 文件载入你也可以这样:
NSString *HTMLData = @"src=\"test2.png\"/>ddd";
[self.webView loadHTMLString:HTMLData baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];
baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]
这段指出 HTMLData 所引用的其他文件资源的基本路径,如果 baseURL:nil 图片信息将不会显示出来
loadData
使用loadData方法对文件进行加载,是以二进制方式加载数据,并且指定类型(mimetype)和编码类型(textEncodingName)
加载本地 PDF
NSString *dataPath = [[NSBundle mainBundle]pathForResource:@"test" ofType:@"pdf"];
[_webView loadData:[NSData dataWithContentsOfFile:dataPath] MIMEType:@"application/pdf" textEncodingName:@"UTF-8" baseURL:nil];
- 加载本地文本文件
NSString *dataPath = [[NSBundle mainBundle]pathForResource:@"谁胡传" ofType:@"txt"];
[_webView loadData:[NSData dataWithContentsOfFile:dataPath] MIMEType:@"text/plain" textEncodingName:@"UTF-8" baseURL:nil];
4. WKWebView 继承了 UIWebView 中的这三种 load 方法,又增加了 loadFileURL 方法。(iOS9.0 之后)
loadRequest 在 WKWebView 中只能加载网络资源了,想要适配9.0之前的系统也可以通过一些间接的方式加载本地资源(不推荐)。可以用 loadHTMLString 或 loadData 来加载本地资源。
loadHTMLString 和 loadData 几乎没有变化,加载时默认适配的终端不同。UIWebView 默认是手机端 WKWebView 默认是 pc 端。
loadFileURL
- 在 iOS9 的 SDK 中加入了该便利方法来加载本地的HTML文件。