跳至主要内容

博文

目前显示的是标签为“iOS”的博文

第三方库

第三方库 1.ui 自动布局 Masonry https://github.com/SnapKit/Masonry 2.网络请求 AFNetworking https://github.com/AFNetworking/AFNetworking Alamofire https://github.com/Alamofire/Alamofire 3.json与model转换 YYModel https://github.com/ibireme/YYModel 4.键盘框架 IQKeyboardManager(键盘自动移动) https://github.com/hackiftekhar/IQKeyboardManager 5.防截屏 Swifty https://github.com/RyukieSama/Swifty

iOS 常用代码碎片

1.退出键盘 //在不知道第一响应者的情况下取消键盘方法 [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; 2.文本输入完成后执行操作监听(无 bug,代理监听在中文输入法或有关联输入的时候容易出现错误,addTarget会导致只能是使用系统的输入法,不能使用第三方输入法,如果输入法里面没有输入法,就没有输入法可用) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:nil]; 最好放在页面基类上面,最后在改页面上添加一个移除监听 -(void)dealloc{      [[NSNotificationCenter defaultCenter] removeObserver:self]; } 3.模拟器scheme测试 xcrun simctl openurl booted "scheme://" 不建议使用这个命令 ,建议写个简单的 scheme 调用 demo,url 不写死即可。暂时发现在 scheme 里面的//在不为 2 个的时候,可能会和app 接收的不一致。具体原因未知。

iOS企业包下载中的下载

 首先,链接格式是itms-services://?action=download-manifest&url=https://xxxx.plist plist文件格式是 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>ipa的完整的url,可以是http的</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>url</key> <string>小图的完整的url,可以是http的</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>url</key...

ssl证书详解

1.我们一般的SSL证书是由三部分组成,根证书机构,中间证书机构,实体证书,一般情况,三个都只有一个机构,就是三层的关系,根证书,中间证书和实体证书。但是某些特殊情况下,中间证书机构可能有不止一个,有两个甚至更多的。这种特殊的证书不是很多,一般人也很少遇到。 2.证书一般是给我们组合起来的,以-----BEGIN CERTIFICATE-----开始,以-----END CERTIFICATE-----结尾的。别人在给证书的时候,如果分开给的话,是可以把几个文件直接拼接起来的,每个三行,begin,内容,end三行。实际使用过程中,一般拼接完三个就可以完成整段证书链了。但是由于中间证书链可能有多层。而且需要注意的是,证书信任链,是一层一层的,先是根证书,再是中间证书,最后是实体证书。不同web服务器,由于配置证书的时候的SSL配置方式多种多样,可以根据不同web服务器组合对应的配置。 3.key的话一般是单独配置的。 4.自签证书     windows一般浏览器可以忽略,所以基本没事,如果是后台交互,客户端这边需要做特殊处理。     android包的下载一般是浏览器,可以直接忽略证书问题,更新可以再代码忽略,其他网络请求也是。     iOS包的下载是由系统处理,必须要https环境,所以,必须安装证书到本地,其中安装需要把证书放在http的环境即可,而不需要https环境。其他的都是代码级别的处理,在网络请求的过程中忽略证书问题。

sqlite数据库

1.新建表 DROP TABLE IF EXISTS "t_journey"; CREATE TABLE t_journey ( 'index' INTEGER PRIMARY KEY AUTOINCREMENT, 'title' TEXT NOT NULL,'content' TEXT NOT NULL,'createTime' timestamp NOT NULL DEFAULT (datetime('now','localtime')), 'changeTime' timestamp NOT NULL DEFAULT (datetime('now','localtime')), 'GPSL' REAL, 'GPSR' REAL ); 2.插入数据 INSERT INTO t_journey(title,content,GPSL,GPSR) VALUES('aaa','bbbb',22.00,33.00); 3.更新数据 UPDATE t_journey SET title = 'eeee' & changeTime = datetime('now','localtime') WHERE "index" = 1

iOS webview js交互总结

iOS web控件有两种,一种是UIWebView,一种是WKWebView UIWebView UIWebView 拦截函数为自定义函数 UIWebView js交互,如果交互函数只有函数名称,即中间没有.号的话,拦截很容易,如果有.号的话,要拦截,必须使用第三方组件 UIWebView+TS_JavaScriptContext ,然后在 webViewDidFinishLoad: 里面执行以下函数(demo中的函数是thirdPartyApp. CloseWebView()) self.context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; self.context[@"thirdPartyApp"] = self; 然后再在web控制器页面添加函数就可以完成拦截过程了 - (void)CloseWebView{ } ## WKWebView WKWebView 拦截的js方法和UIWebView不一样,只能拦截window.webkit.messageHandlers. mydemo .postMessage函数,拦截名称为灰色部分。 WKWebView 有两种方案 方案1: 修改web,然后添加兼容WKWebView的代码,本地修改useragent,添加webConfiguration.applicationNameForUserAgent = @"demo";后面为添加的区分代码 交互代码为 window.webkit.messageHandlers.mydemo.postMessage(''); 方案2:初始化代码如下,添加的js交互代码 拦截核心代码如下 WKUserContentController *userController = [[WKUserContentController alloc]init]; NSString *javaScriptSource = @"var thirdPartyApp = {};thirdPartyApp.function(){window.webkit.messageHandlers.m...

iOS plist 文件更新

iOS企业更新网上有很多说法,现在总结一下。 1. plist模板采用最新的xcode导出一份即可。 2. 想要正常下载,需要.ipa,对应的图片(大小需要匹配),plist文件,https环境。

sourcetree使用

sourcetree基本使用以后再添加。

Objective-C和Swift混编

首先,混编这里分为两种情况分别说明,一种是Objective-C项目中添加Swift代码,一种是Swift项目添加Objective-C代码。

import and include

面试题中常见的 import 和 include 问题

cannot create __weak reference

升级XCode 7.3 后提示 『cannot create __weak reference』