iOS开发网络篇

转载自《iOS开发网络篇—Socket编程》 一、网络各个协议:TCP/IP、SOCKET、HTTP等 网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议对应于应用层 tcp协议对应于传输层 ip协议对应于网络层 三者本质上没有可比性。 何况HTTP协议是基于TCP连接的。 TCP/IP是传输层协议,
分类: 其他 发布时间: 01-04 22:46 阅读次数: 0

iOS蓝牙开发 —— 连接打印机发送16进制数据的问题

最近在做公司的一个蓝牙连接打印机的项目,正常的蓝牙连接打印机进行打印没问题,但是要发送一个16进制的指令来获取蓝牙设备信息时颇费了一番功夫,现做如下记录: Byte byteArray[] = {0x1d ,0x67 ,0x61}; NSData *sendData = [NSData dataWithBytes:byteArray length:sizeof(byteArray)]; [self.peripheral writeValue:sendData forCharacteristic
分类: 其他 发布时间: 01-04 22:46 阅读次数: 0

iOS开发最新最全微信第三方登录接入流程

前言: [1] iOS 微信登录注意事项 1、目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。 2、对于Android应用,建议总是显示微信登录按钮,当用户手机没有安装微信客户端时,请引导用户下载安装微信客户端。 3、对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录
分类: 其他 发布时间: 01-04 22:46 阅读次数: 0

iOS开发使用 runtime 方法中的 class_copyIvarList,class_copyMethodList 方法时导致内存泄漏问题

前段时间在做公司新项目的时候使用了 runtime 的 class_copyIvarList 方法来获取类的所有属性的时候,用 leaks 检测,发现这里出现了内存泄漏。后来查了一些资料发现 class_copyIvarList 返回的对象需要手动释放。因为这些是C实现的函数,需要手动对函数返回值进行 free。 具体看代码: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ Class view
分类: 其他 发布时间: 01-04 22:45 阅读次数: 0

OC与JS交互

第一种:JS给OC传值,使用JavaScriptCore.framework。 oc 代码 #import <JavaScriptCore/JavaScriptCore.h> - (void) webViewDidFinishLoad:(UIWebView *)webView{ JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; c
分类: 其他 发布时间: 01-04 22:45 阅读次数: 0

scrollView 向下偏移64个点的问题以及 scrollView 缩放的问题

第一个问题:scrollView 向下偏移的问题 原因 在iOS7之前是没有这个问题的,后来苹果更新出自动适配,在控制器里增加了一个新属性automaticallyAdjustsScrollViewInsets默认为YES,通过字面意思大家应该就发现了,开启ScrollView自动调整,就是如果是在nav下的ScrollView里的子View会自动向下偏移64个点。 解决 不让系统自动适配,将automaticallyAdjustsScrollViewInsets设置成NO。 代码: self
分类: 其他 发布时间: 01-04 22:45 阅读次数: 0

CABasicAnimation 实现颜色渐变动画

利用 CABasicAnimation 实现颜色的渐变动画 - (void)doAnimation:(BOOL)hidden{ CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"backgroundColor"]; anim1.duration = 0.2; anim1.fromValue = hidden ? (__bridge id _Nullable)([UIColor white
分类: 其他 发布时间: 01-04 22:45 阅读次数: 0

iOS 11上运行tableView向下偏移64pt或者20pt

1、在iOS 11上运行tableView向下偏移64pt或者20pt,因为iOS 11废弃了automaticallyAdjustsScrollViewInsets,而是给UIScrollView增加了contentInsetAdjustmentBehavior属性。避免这个坑的方法是要判断 1 2 3 4 5 if (@available(iOS 11.0, *)) { _tableView.contentInsetAdjustmentBehavior = UIScrollViewCont
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

java-Set集合、HashSet集合、LinkedHashSet集合和TreeSet集合

1、Set集合,无索引,不可以重复,无序(存取不一致) 1 public class Demo { 2 3 public static void main(String[] args) { 4 //demo1(); 5 demo2(); 6 } 7 8 private static void demo2() { 9 HashSet<Person> hs = new HashSet<>(); 10
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

Linux安装virtualenvwrapper详细步骤

1.[root@localhost ~]# pip install virtualenvwrapper 2.[root@localhost ~]# pip list [root@localhost ~]# pip list Package Version ----------------- ------- pbr 5.1.1 pip 18.1 setuptools 40.6.2 s
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

【学习笔记】回文自动机

依旧是后面再补上讲解吧希望我不要忘记惹。。。。 本质是一颗trie,节点代表了回文的一半; 自动机节点维护长度和最大回文后缀的fail指针; 奇数回文的根长度为-1,编号1,偶数0,1;(编号是有艺术的) 插入沿着上一个点找是否有匹配的回文; 注意如果要新建节点的话应该再找新建点的fail,继续想上跳即可找到,此时要先找fail再连新建点,不然在新建点的父亲为1的时候会出错; 习题: bzoj2565最长双回文串 用回文自动机正反两边跑出每个点的前后最长回文串,枚举断点统记ans 1 #in
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

深度神经网络算法机器学习深度学系列教程

深度神经网络算法机器学习深度学系列视频教程 (基础1)Python程序入门视频 课程Python介绍_压缩 环境配置 配置Python环境 以及数据类型 字符串String和变量 数据类型2整型_字符串 数据结构列表 列表List元组tuple对比 元组 词典 函数 函数 控制流 控制流 控制流 控制流 输入输出格式 文件输入输出 错误与异常 面向对象以及装饰器 图形界面介绍 猜数字游戏 创建网页 去重4.2控制流 重录 (基础2)机器学习深度学习基础 课程介绍机器学习介绍上 课程介绍机器学习
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

玩转算法面试 leetcode题库分门别类详细解析教程

课程名称: 玩转算法面试 leetcode题库分门别类详细解析视频教程 课程简介: 相信这是一门非常及时的算法教程,送给面试在即的你,学完这门课程,对于面试中遇到的大多数算法问题,你都会迎刃而解,但课程绝不止于面试,同样适合即将参加各类算法竞赛的同学,重要的是提升你的算法思维,这将是贯穿你编程生涯的核心内功!课程并非只是生硬地讲解每一个算法问题的答案,而会特别强调针对不同的问题该如何思考,有哪些不同的解法,优缺点,有哪些地方可以和面试官交互探讨,让面试官对你印象深刻 -------------
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

3种方法实现导航菜单栏中的二级下拉菜单

我们在淘宝、搜狐等大型网站上都可以看到使用的一些二级下拉菜单,比如下面这张图片。我们有至少三种方式来实现,附上代码供大家参考。 1.仅使用html和css <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { margin:0; padding: 0; list-style: none; text-decoration: none; } #nav {
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

02-MySQL的安装和管理

# mysql的安装和基本管理 # 01 数据库管理软件分类 ''' 分两大类:   关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用   非关系型:mongodb,redis,memcache 总结两句话: 关系型数据库需要有表结构 非关系型数据库是key-value存储的,没有表结构 所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

迭代器和Interator的常见用法

迭代器(也是一种设计模式)是一个对象,他的工作是遍历并选择序列中的对象,而客服端程序员不必知道或关心该序列底层的结构。此外,迭代器通常被称为轻量级对象:创建它的代价小。因此,经常可以见到对迭代器有些奇特的限制:例如Java的Interator只能单向移动,这个Interator只能用来: 1)使用方法iterator()要求容器返回一个Interator。Interator将准备好返回序列的第一个元素。 2)使用next()获取序列中的下一个元素。 3)使用hasNext()检查序列中是否还有
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

ARTS-S CentOS 7 minimal 版本安装后网络配置

用root登录服务器,执行 nmcli d 可以看到ethernet disconnected,网卡是处于禁用状态.执行 nmtui 选Edit a connection-Edit,选中Automatically connect.注意按空格选中.选OK退出.然后执行 service network restart 然后再输入 ip a 可以看到网卡已经生效. 参考资料 https://my.oschina.net/ihanfeng/blog/601853
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

S5PV210刷机

一. 刷机初识   1.1. 什么是刷机     a. 刷机就是通过各种手段把相应镜像烧录到设备中,让设备可以运行起来。常见的刷机如:安卓刷机,QT刷机   1.2. S5PV210刷机镜像     1.2.1. 刷安卓所需要的镜像       a. uboot镜像: uboot.bin       b. linux kernel镜像:zImage-android       c. android rom镜像: x210.img     1.2.2. 刷QT4.8 所需要的镜像       a
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

03- 基本的SQL语句介绍

01 库的操作 新增库 create database db1 charset utf8; # 由于在my.ini中已经配置了字符集,所以,charset utf8可以不写 查库 # 查看当前创建的数据库 show create database db1; # 每个SQL语句后面必须要有分号,表示该条SQL语句的结束 # 查看所有数据库 how databases; 改库 alter database db1 charset gbk; # 修改库的字符集 删库 drop database db
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0

leetcode刷题——SQL

~~~
分类: 其他 发布时间: 01-04 22:44 阅读次数: 0