2017-12-05 - Git 上传代码

2017/12/5 posted in  工作总结

layout: post
title: "Git 上传代码"
date: 2017.12.05
tag: iOS 总结


Git 快捷上传代码

#  之前一直用的是SourceTree、SVN 不过都是公司服务器本地上传
   
   想过最早用的就是GitHub 就想过国区里有没有,结果就找到了“马云”大大
   
   经过了解后码云给我的感觉就是方便快捷的保存项目以及合作开发
   
   所以今天就写了一篇关于 Git 的文章,以供学习

本地项目上传至码云

  1. 在码云上点击 “新建项目”
  2. 创建成功后,打开终端 cd 到 文件里
  3. git init 初始化仓库
  4. git remote add origin “URL”(码云上新建项目点进去克隆或者复制的链接)
  5. git pull origin master(把分支上的文件拉下来)
  6. 把要上传的项目移动到刚刚从云端抓取下来的文件夹内
  7. git add . 或者 git add + 被拖入的项目名(保存到缓存区)
  8. git commit -m "要编辑的内容"(推送到本地库种)
  9. 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文件。