自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 问答 (1)
  • 收藏
  • 关注

原创 在 TS 中解析 ipa 文件

ipa 的解析主要是解析 info.plist、appIcon。应用之家即采用了此种方式进行解析。上传 ipa 后并能解析到应用的安装环境证书的有效期APP开通的功能可安装设备的UDID公共秘钥指纹等具体信息。并提供下载统计等丰富功能。

2023-12-08 11:27:10 146 1

原创 Xcode14:A valid provisioning profile for this executable was not found

使用archive后的APP安装到真机上,此后再使用Xcode真机调试就可以成功了。运行后正确编译至install。

2023-05-09 10:27:57 647

原创 AWSS3 iOS 认证方法-V4认证

AWSS3 v4 认证

2023-01-18 09:55:19 2413

原创 AWSS3 iOS SDK使用教程

iOS AWSS3 SDK使用教程

2023-01-17 13:50:36 2344

原创 2022 CocoaPods安装教程

2022最新整理CocoaPods安装教程

2022-07-20 10:17:20 898

原创 10、树莓派 蓝牙连接和调试

蓝牙连接和调试参考文章安装蓝牙sudo apt-get install bluez详见上一篇。蓝牙调试(主机)命令行进入: sudo bluetoothctl查看:default-agent注册anget:agent on扫描: scan on停止扫描:scan off找到要配对的蓝牙配对:pair xx:xx...xx:xx添加信任:trust xx:xx...xx:x...

2019-05-22 15:14:54 5279

原创 9、树莓派 蓝牙

树莓派软件更新依次执行如下命令:sudo apt-get updatesudo apt-get upgrade -ysudo apt-get dist-upgrade -y以上指令如不成功,在指令后添加--fix -mising安装蓝牙sudo apt-get install pi-bluetooth bluez bluez-firmware blueman系统默认安装的是pi-...

2019-05-21 15:00:52 2524 2

原创 8、树莓派c语言实现HTTP的GET和POST请求

C语言实现客户端向服务器发送信息#include<stdio.h>#include <stdio.h> #include <string.h>#include <unistd.h>#include <sys/types.h> #include <sys/socket.h> #include <neti...

2019-05-21 15:00:39 1787

转载 7、wiringSerial源码

源码地址/* * wiringSerial.c: * Handle a serial port *********************************************************************** * This file is part of wiringPi: * https://projects.drogon.net/raspberry-p...

2019-05-21 15:00:24 617

原创 6、串口开发

串口设置将树莓派的硬件串口与mini串口默认映射对换因为:硬件串口由硬件实现,有单独波特率时钟源,性能高,可靠,而mini串口要依附CPU内核提供时钟。因此我们要用硬件串口,但是树莓派3b的硬件串口默认连接的是蓝牙,所以我们要改一下,把蓝牙映射到mini串口上,而释放硬件串口。查看相关文件:cd /boot/overlays,找到pi3-miniuart-bt.dtb或pis-mini...

2019-05-21 15:00:07 251

原创 5、IO操作知识

GPIOGPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控...

2019-05-21 14:59:48 352

转载 4、在树莓派上将程序设置为自启动

制作测试脚本在pi用户下创建测试文件夹:mkdir test0226cd test0226,创建sh脚本文件,将如下内容写到脚本中,注意路径是否正确。#!/bin/shtouch /home/pi/test0226/testboot.txtchmod 777 /home/pi/test0226/testboot.txtecho "hello pi~" >> /ho...

2019-05-21 14:59:31 804

原创 3、设置树莓派 键盘上下左右删除键

处理步骤:root权限打开/etc/vim/vimrc.tiny编辑vimrc.tiny中的set compatible 为set nocompatible编辑vimrc.tiny,添加 set backspace=2获取root权限第一次切换到root时,输入sudo passwd root提示设置密码,密码设置完成后即启用root用户,当前使用pixmzr切换到root用户...

2019-05-21 14:59:10 854

原创 2、编写第一个C语言程序

编写第一个C语言程序新建空文件,命名为HelloWorld.c用geany打开文件,编写C程序,并保存用gcc指令进行编译执行编译后的文件具体代码如下:#include <stido.h>int main() { printf("HelloWorld.c \n");}编译,指定编译后的文件为HelloWorld:在-o后指定gcc HelloWo...

2019-05-21 14:58:51 656

原创 1、wiringPi的安装和使用

树莓派安装gitsudo apt-get install git-core如果安装失败,请确认Raspbian版本是否为最新的,可以输入以下命令更新:sudo apt-get updatesudo apt-get upgrade安装使用git进行安装git clone git://git.drogon.net/wiringPi更新进入到wiringPi后进行更新cd wirin...

2019-05-21 14:58:36 1653

原创 0、树莓派开发开篇

树莓派开发系列教程参考树莓派与Linux树莓派中文站树莓派-简书树莓派-微雪课堂树莓派-懒兔子使用树莓派进行蓝牙串口开发的一些经验树莓派3b+的蓝牙实际上是不容易开发的,是需要进行配对后进行通信的,对于不了解蓝牙,初上手的人员来说很难进行。网上的一些资料也只是介绍了如何进行蓝牙连接,和实际的应用场景差别很大,还是满足不了需求。我们的使用场景是用手机的APP连接树莓派的蓝牙,进行...

2019-05-21 14:57:57 223

原创 蓝牙指令解析

蓝牙指令解析本篇从如下三个方面介绍通过data如何与蓝牙进行通讯。字节高低位及运算蓝牙特征的属性及作用CRC16校验常用算法及实现字节高低位及运算1byte的范围为0-255,两个16进制的字符表示的范围(15*16+15)为0~255,故一字节等于两个16进制的字符.字节高低位的概念蓝牙通信规约中,一般会说明一个信息占用多少个字节,同时会说明高位在前还是低位在前。一般,...

2019-03-15 15:51:54 4435

原创 升级macOS Mojave后pod失效问题解决

升级macOS Mojave后pod失效系统升级到10.14后,pod使用失效,报错:/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:118:in `git_version': Failed to extract git version from `git --version` ("xcrun: er...

2019-03-15 14:18:23 627

原创 iOS 网络层设计

网络层设计iOS项目架构iOS的项目架构一般设计为这几层,即UI层、服务层、数据层,以及第三方依赖层。UI层:主要管理项目中的所有UI界面,根据模块进行划分,如:登录模块,首页模块,搜索模块等等,还包括通用控件模块。服务层:基于各模块创建的服务于各模块的服务类,各模块的服务类之间相互独立,如果存在相互调用的情况,就将此抽象出来,设置到数据层中。UI层只负责UI的渲染和交互,数据之间的逻辑...

2019-03-15 14:09:31 511

原创 iOS单例继承

iOS单例创建和继承单例一般来说,在iOS的工程中, 通用的tool一般都会设计成单例,这样能保证在程序运行过程中,程序中只有一个单例对象,方便数据的传输和处理。如果为了扩展此单例类,希望在此基础上增加面向各模块专用的单例方法,该如何处理呢。可以采用的方法有两种:分类:可以针对各个模块创建对应的分类,并添加方法。缺点是不能继承原有单例的属性。继承:也可以针对各个模块创建出对应的子类,...

2019-03-15 14:07:05 365

原创 iOS系统加密函数详解

iOS系统加密函数详解加密的种类单向加密通过对数据进行摘要计算生成密文,密文不可逆推还原,如:MD5、SHA、Base64双向加密与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密对称加密数据使用者必须拥有相同的秘钥才可以进行加密解密。如:DES、3DES、AES、IDEA、RC4、RC5非对称加密相对对称加密,无需拥有同一组密钥。非对称...

2019-03-15 11:47:48 997

原创 AVPlayer的用法

AVPlayer的用法基本概念:AVPlayer的组成:AVPlayerAVPlayerItemAVPlayerLayerAVPlayer:控制播放过程,相当于ViewController AVPlayerItem:提供播放的资源,相当于Model AVPlayerLayer: 显示播放的播放器,相当于View创建过程使用AVPlayerItem创建AVPlayer,使用创建好的AVPl

2017-07-21 16:57:15 2755

原创 终端命令-文件操作、编辑操作

终端命令:基本路径操作相对路径:cd /users/yang/Desktop绝对路径:cd Ddesktop. 表示当前路径.. 表示当前路径的上一层… 表示当前路径的上2层没有…或者以上的文件操作查看文件路径ls: ls 查看当前路径下的文件及文件夹的名字ls /bin 表示:查看当前路径下的Documents文件夹下的所有东西ls Documents 表示:查看当前路径下的

2017-05-22 11:08:07 9836

原创 树的基本概念

树定义 树是n(n>=0)个结点的有限集。n=0时称为空树。在任意一课非空树中:(1)有且仅有一个特定的称为根的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树。注意点n>0时,根结点是唯一的,不可能存在多个根结点。m>0时,子树的个数没有限制,但它们一定是互不相交的。结点分类树的结点包含一个数据元素

2017-04-13 10:23:01 755

原创

串串的定义 串是由零个或多个字符组成的有限序列,又名叫字符串。所谓的序列,说明串的相邻字符之间具有前驱和后继的关系。空格串,是只包含空格的串。空格串是有内容有长度的,而且可以不止一个空格。子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串。包含子串的串称为主串。子串在主串中的位置就是子串的第一个字符在主串中的序号。串的比较串的比较是通过组成串的字符之间的编码来进行的,字符的编码指

2017-04-13 10:20:47 488

原创 队列

队列 只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。队列的顺序存储插入数据时,只要在队列的末尾追加一个元素,不需要移动任何元素,因此时间复杂度为O(1);删除数据时,需要在队列的开头删除一个元素,后面的元素依次向前移动一位,和线性表的顺序存储结构完全相同。因此时间复杂度为O(n);为了避

2017-03-31 13:53:37 382

原创

栈栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表,简称LIFO结构。理解栈的定义:首先它是一个线性表,栈元素具有线性关系,即前去后继关系。表尾即栈顶。特殊之处在于限定插入和删除的位置,栈底是固定的,最先进栈的只能在栈底。栈的插入操作,叫做进栈,也称压栈、入栈。栈的删除操作,叫做出

2017-03-31 09:32:39 647

原创 循环链表

循环链表 将单链表中终端节点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。循环链表的判断条件循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p->next是否为空,现在则是p->next不等于头结点,则循环未结束。改造循环链表在单链表中,有了头结点时,可以用O(1)的时间访问第一个结点,单对于要访问到最后一个结点,却需要

2017-03-30 10:37:42 883

原创 线性表

线性表定义零个或多个数据元素的有限序列。 用数学语言来进行定义如下: 若将线性表标记为(a1,……,ai-1,ai,……,an),则表中的ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱,ai+1是ai的直接后继元素。当i=1,2,……,n-1时,ai有且仅有一个直接后继,当i=2,3,……,n时,ai有且仅有一个直接前驱。线性表元素的个数n(n>=0)定义为线性表的长度,

2017-03-29 16:50:14 532

原创 textView的编辑页面控制键盘和textView

textView的编辑页面控制键盘和textView这种编辑页面一般存在两个问题: 1. textView的frame为页面的bounds,这样点击编辑的时候,如果输入的字数很多,键盘就会遮挡到文字,用户就看不到这在输入的文字了。 2. 如果textView上有很多文字,点击某一行,键盘弹出,键盘也会遮挡到文字,如何让页面恰好移动到键盘的上面。解决思路: 点击textView,键盘弹出时,改变

2017-03-17 16:37:13 677

原创 在tableView中监听cell上textField的点击和键盘通知

在tableView中监听cell上textField的点击: 如下图: * 方案一:如何确定点击的cell在tableView中的frame苹果API中有关于点击cell时获取cell在tableView中的位置的方法: CGRect cellFrame = [tableView rectForRowAtIndexPath:indexPath]; 在tableView的点击方法

2017-03-16 22:02:47 2706

原创 textField和textView同时存在时的键盘监听

textField和textView同时存在时的键盘监听如果一个页面中同时存在多个textField和textView,首先要解决的是当前键盘的弹出是由谁调出的,同上一篇的方法在多个UITextField中监听键盘的弹出和消失。 1. 声明属性selectedField和selectedTextView; 2. 在各自的代理方法中分别设置选中的textField和textView 3. 在监听

2017-03-16 21:34:23 1734

原创 在多个UITextField中监听键盘的弹出和消失

键盘应用一:在多个UITextField中监听键盘的弹出和消失页面中存在多个UITextField的监听难点在于判断当前点击的textField是哪一个。声明全局属性:selectedTextField通过UITextFieldDelegate的方法获取选中的textField: <ul><li>(BOOL)textFieldShouldBeginEditing:(UITextField

2017-03-16 21:20:10 897

原创 键盘基础

键盘键盘处理在iOS开发中经常用到,尤其在经常性输入内容的应用中。 和键盘联系紧密的控件有:UITextfield、UITextView。 键盘的监听通过通知来进行,监听的通知name如下://键盘将要出现UIKIT_EXTERN NSNotificationName const UIKeyboardWillShowNotification;//键盘出现UIKIT_EXTERN NSNot

2017-03-16 20:51:41 251

原创 算法基础概念

算法定义特性算法设计的要求算法效率的度量方法函数的渐近增长算法时间复杂度常见的时间复杂度最坏情况和平均情况算法空间复杂度算法定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 为了解决某个或某类问题,需要把指令表示成一定的操作序列,操作序列包括一组操作,每一个操作都完成特定的功能,这就是算法了。特性算法具有5个基本特性:输入、

2017-03-14 14:58:06 411

原创 数据结构基本概念

数据结构基本概念和术语数据 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型,还包括字符及声音、图像、视频等非数值类型。 1.1 数据就是符号,这些符号必须具备有两个前提: 可以输入都计算机中能被计算机程序处理数据元素 是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。数据项 一个元

2017-03-14 10:35:35 361

原创 Git操作指令一

创建版本库选择一个地方创建空目录mkdir ,创建一个空目录;cd ,打开这个目录;pwd显示当前目录git init把这个某变为Git可管理的仓库给目录中添加文件git add 将文件添加到仓库git commit -m "说明文字"把文件提交到仓库git status查看当前仓库的状态git diff

2017-03-10 16:23:26 284 1

原创 Git操作指令二

Git基本冲突解决分支合并策略分支策略原则bug分支恢复工作现场有两种模式删除未合并的分支多人协作推送分支抓取分支删除远程仓库分支标签管理创建标签操作标签使用GitHubGit基本Git鼓励大量使用分支:查看分支:git branch创建分支:git branch 切换分支:git checkout 创建+切换分支:git c

2017-03-10 15:19:15 271

原创 大话数据结构之:直接插入排序

直接插入排序 直接插入排序(straight insertion sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1 的有序表。从名称上就知道它是一种插入排序的方法。它的前提是,已存在的数据表中的数据是有序的。代码具体代码如下://直接插入排序void straight_insertion_sort(int *array, int n){ in

2017-03-09 10:59:48 402

原创 大话数据结构之:分块索引

分块索引稠密索引因为索引项和数据集的记录个数相同,所以控件代价很大。为了减少索引项的个数,我们可以对数据集进行分块,使其分块有序,然后再对每一块建立一个索引项,从而减少索引项的个数。 分块有序,是把数据集的个数分成了若干块,并且这些块需要满足两个条件块内无序,即每一块内的记录不需要有序。块间有序,即要求第二块内记录的所有关键字都要大于第一块内的所有关键字,第三块内的所有关键字都要大于第二块内的

2017-03-08 15:08:28 692

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除