- 博客(108)
- 资源 (43)
- 收藏
- 关注
原创 Cocoapods安装及使用
最近项目中在集成视频播放,采用了封装很优秀的开源播放器MobileVLCKit,这里使用的是V2.2.2版本。期间遇到了pods安装相当慢的问题,这里就记录一下cocoapods的安装方法和针对下载速度慢的pods项目如何处理cocoapods安装1、指定gem的源地址//更换墙内地址gem sources --add https://gems.ruby-china.org/ --remove h
2018-01-11 13:48:36
671
原创 __attribute__简析
__attribute__表示属性,是Clang提供的一种源码注释,方便开发者向编译器表达诉求,一般以__attribute__(*)的方式出现在代码中。为了方便使用,一些常用属性被定义成了宏,经常出现在系统头文件中。比如NS_CLASS_AVAILABLE_IOS(9_0) 就是 __attribute__(availability(9.0)) 这个属性的简单写法。下面介绍一些可能会频繁使用到的属
2018-01-11 13:47:34
914
原创 基于融云实现应用公众号
好久没有研究融云相关的内容了,最近看到融云已经集成了公众号,有应用内的,也有接入第三方应用市场的。不得不说,融云在即时通讯这块内容做的已经很丰富了。这里没有打广告的意思,即时通讯SDK哪家强,仁者见仁智者见智,我不做对比。只是个人使用融云的产品较多,所以这里重点介绍基于融云的SDK实现应用内公众号服务。公众号消息的发送实际上应该是由应用服务器调用融云的接口来实现,这里采用的方式是客户端模拟服务端请求
2018-01-04 15:13:39
1373
原创 Xcode报Invalid bitcode signature错误的解决方案
最近由于需要做iPhone X的适配工作,不得以升级了Xcode9和macOS High Sierra。升级后使用Xcode9编译原来的项目代码就出现了问题,会报一个Invalid bitcode signature的错误,经过多方查找问题,发现是pods的配置导致的,下面是解决方案1、修改工程中pods的设置如下,可以参考原来Xcode8的工程配置2、替换脚本diff "${PODS_ROOT}/
2017-12-01 09:46:38
4667
原创 BLE开发之CoreBluetooth
一、前言BLE,全称蓝牙低能耗(Bluetooth Low Energy)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段,隶属于蓝牙4.0规范。它从一开始就设计为超低功耗(ULP)无线技术。它利用许多智能手段最大限度地降低功耗。蓝牙低能耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。另外,因为BLE技术采用非常快速的连接方式,因
2017-09-04 16:13:59
667
原创 常用URL Scheme
系统相关 应用名称 URL Scheme 短信 sms:// app store itms-apps:// 电话 tel:// 无线局域网 App-Prefs:root=WIFI 蓝牙 App-Prefs:root=Bluetooth 蜂窝移动网络 App-Prefs:root=MOBILE_DATA_SETTINGS_ID 个人热点 A
2017-07-24 13:52:22
29253
2
原创 APNS机制的简单分析
提到消息推送,那就不得不提及苹果的APNS(Apple Push Notification Service)。我们首先来看一组数据(数据来自互联网)1. 苹果在WWDC 2012上宣布每天发送70亿条消息推送2. 有分析称在苹果的2019财年,iPhone活跃用户数量将突破10亿那么你有没有想过,这几年移动互联网的快速发展,APNS推送数据保守估能达到将近千亿的量级,这么大的用户活跃量和巨大的消
2017-07-06 17:08:58
889
原创 MVC、MVVM之我见
MVCMVC,全称是Model(数据) View(用户界面) Controller(业务逻辑)。从这个概念被提出来到现在,MVC已经成为了主流的客户端编程架构上面是一个典型的MVC图。Controller捕获到事件后通知Model做数据处理,Model处理完了之后Controller将数据反馈给View来完成展示或者更新。逻辑很清晰哈,但是这样会有一个明显的问题,那就是Controller时时刻刻在
2017-07-06 13:46:03
574
原创 上架App Store问题及解决方法
1、arm64的支持工程设置增加arm64的支持检查工程中所引用的第三方的静态包是不是支持arm64。打开终端,输入file空格,然后在Finder中将要检查的静态包文件拖到空格后面,回车,即可列出该静态包所支持的架构2、访问权限的问题Missing Info.plist key - This app attempts to access privacy-sensitive data wi
2017-06-20 15:46:57
529
原创 由浅到深理解iOS的签名机制
一直以来,针对iOS开发者,特别是刚入行的开发者,apple的签名机制是一个理解的难点,多种证书、描述文件、证书签名请求(CSR)等等,都是一些专业名词,加上apple签名机制的复杂性,难以理出头绪。本文将由浅入深解析apple的签名机制,希望能帮助大家解惑在这之前,首先先理解两个概念:非对称加密和数字证书非对称加密上面提到的签名就是数字签名,它是基于非对称加密算法实现的。对称加密算法是加密和解密内
2017-06-20 15:44:56
1716
原创 iOS应用上架App Store流程解析
一直以来,将自己开发的应用程序上架到苹果爸爸的App Store是iOS开发者又爱又恨的事情。爱,是因为上架之后的成就感,恨,是因为上架过程中的不断爬坑。一般来说,只要开发者的App不违反苹果的上架协议,一次通过的概率还是很高的,而且苹果的审核团队现在狠狠的提高了审核效率,最快在12小时内就会有审核结果。好了,废话不多说了,开始正文Developer Center配置要将自己开发的应用上架到App
2017-06-20 15:44:13
649
原创 仿QQ联系人列表
本示例代码是仿TIM好友列表的效果,采用UITableView来实现,分组名称为tableview的header,根据展开的状态来判断需要返回cell的数目。效果图如下。代码包含12个文件,其中资源文件包含3个图片、1个数据源文件,目录结构如下。工程文件已经上传到github,有需要的可以直接下载运行代码地址
2017-06-13 09:18:30
1172
原创 使用kxmenu时在UIBarButtonItem上frame无效
UIBarButtonItem *addItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addBtnClicked:event:)]; self.navigationItem.rightBarButto
2017-05-10 14:49:28
511
原创 音频三--音频会话
1.设置后台运行模式:在plist文件中添加Required background modes,并且设置item 0=App plays audio or streams audio/video using AirPlay(其实可以直接通过Xcode在Project Targets-Capabilities-Background Modes中设置)2.设置AVAudioSession的类型为A
2017-05-04 14:44:05
406
原创 音频二--音乐
AVAudioPlayer的使用比较简单:1、初始化AVAudioPlayer对象,此时通常指定本地文件路径。2、设置播放器属性,例如重复次数、音量大小等。3、调用play方法播放。下面就使用AVAudioPlayer实现一个简单播放器,在这个播放器中实现了播放、暂停、显示播放进度功能。#import "ViewController.h"#import #define kM
2017-05-04 14:32:57
294
原创 音频一--音效
在iOS中音频播放从形式上可以分为音效播放和音乐播放。前者主要指的是一些短音频播放,对于这类音频不需要进行进度、循环等控制。后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制。在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放。AudioToolbox.framewo
2017-05-04 14:13:01
464
原创 tableview实现单个cell的展开和收起
此篇主要介绍采用替换cell的方式来实现cell的收起和展开效果,下面是效果图,分为只能展开一个cell和都能展开两种代码实现#import "replaceVC.h"#import "TitleCell.h"#import "DetailCell.h"@interface replaceVC ()@property (nonatomic,strong) UIT
2017-04-28 12:49:38
3971
1
原创 适配iOS10的权限设置
* 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风?* 相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?* 相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?* 通讯录
2017-04-14 13:09:23
517
原创 xib中User Defined Runtime Attributes使用
1、一般的控件直接使用layer.cornerRadius即可2、UIImageView还需要设置layer.maskToBounds
2017-04-14 13:07:17
1360
原创 xcode重定向log到本地问题
使用前需要在plist中设置日志共享在info.plist中打开Application supports iTunes file sharing- (void)redirectNSlogToDocumentFolder { NSLog(@"Log重定向到本地,如果您需要控制台Log,注释掉重定向逻辑即可。"); NSArray *paths = NSSearch
2017-04-13 10:42:27
1155
原创 基于MobileVLCKit的视频播放器的二次封装
Demo地址:https://github.com/xttxqjfg/videoDemo,喜欢的可以星星~为了适应项目的需要,参照网上的例子,对MobileVLCKit做了一个二次封装。主要功能有全屏、关闭全屏、自动全屏、暂停、播放、快进等基本功能。项目中用到的是pods来集成MobileVLCKit。pods中的包下载下来在本地看有700多M,集成时保证好网络环境,不然要等很久,不过这700M不...
2017-04-12 10:08:13
4861
原创 轮播器(三)--采用UICollectionView实现图片无限轮播
此篇介绍另一种图片轮播器的优化,采用UICollectionView来实现,因为系统已经为UICollectionView做好了优化#import @protocol CarouselDelegate //点击事件-(void)clickedAtIndex:(NSInteger)index;@end@interface CarouselView : UIView//代理
2017-04-10 14:18:16
660
原创 轮播器(二)--采用两个ImageView和UIScrollView实现图片无限轮播
此篇文章介绍采用两个ImageView来实现无限轮播的方法,用于优化前篇的图片轮播#import @protocol CarouselDelegate //点击事件-(void)clickedAtIndex:(NSInteger)index;@end@interface CarouselView2 : UIView//代理@property(assign,nonatom
2017-04-10 13:33:05
809
原创 轮播器(一)--UIScrollView实现图片轮播
此篇文章主要介绍如何采用UIScrollView来实现轮播图,加入定时器来实现自动轮播#import @protocol CarouselDelegate //图片的点击事件-(void)clickedAtIndex:(NSInteger)index;@end@interface CarouselView1 : UIView//代理@property (nonatomi
2017-04-10 10:32:36
428
原创 导航栏隐藏的平滑切换
最近项目要用到透明导航栏,如果只是单纯的将导航栏设置为隐藏,则在切换页面的时候过度就很生硬,体验很不好,网上搜索了好几个实例看了下,基本都是用runtime的黑魔法实现的,但是效果都没有达到我需要的效果,所以就综合几个示例,完成了下面的demo,切换效果还是很好,很平滑,达到了预期的效果。本示例也是通过runtime黑魔法来实现的,这里做个记录,有需要的可以拿过去用,本篇会贴出全部的关键代码段
2017-04-06 10:57:01
1253
原创 WKWebView使用功能点
1、更改UA,wk提供了新的属性customUserAgent直接修改,不用下面的如此麻烦// 更改全局UA,此处修改之后,app内都将使用这个新的UAUser-AgentUIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];NSString *oldAgent = [webView stringByEvalua
2017-04-05 11:22:11
459
原创 iOS10通知(七)--Notification Content Extension
上一篇介绍了如何用Notification Service Extension来实现修改收到的消息内容,这一篇介绍使用Notification Content Extension来实现自定义的通知界面。工程中用到了SDWebImage1、首先在工程中新增一个通知的内容拓展2、这个 extension 中有一个必须实现的方法 didReceiveNotification(),在系
2017-04-01 10:09:30
5660
3
原创 iOS10通知(六)--Notification Service Extension
iOS 10 中添加了很多拓展 extension,与通知相关的拓展 extension 有两个:Notification Service Extension 和 Notification Content Extension。前者可以让我们有机会在收到远程推送的通知后,展示之前对通知内容进行修改;后者可以用来自定义通知视图的样式。Notification Service Extension 现
2017-03-31 17:18:09
7214
原创 iOS10通知(五)--本地实现多媒体通知
iOS 10 中,开发者现在可以在通知中嵌入图片、音乐或者视频。为本地通知添加多媒体内容十分简单,只需要通过文件的NSURL创建一个 UNNotificationAttachment 对象,然后将这个对象放到数组中赋值给 content 的 attachments 属性就行了如果需要实现远程的多媒体通知,那就要用到下篇中的通知拓展,具体操作在下篇介绍,本片只介绍本地多媒体通知1、本地多
2017-03-31 16:52:34
2085
原创 iOS10通知(四)--带事件通知的发送和处理
所谓的带事件通知只是我的一个理解,原意是可交互的通知1、在NotificationHandle类中增加交互通知的实现方法//注册通知中的action事件-(void)registerNotificationCategory{ //带评论的通知事件注册 UNTextInputNotificationAction *inputAction = [UNTextInputNot
2017-03-31 16:23:46
1447
原创 iOS10通知(三)--通知的取消和修改
在创建通知时,我们可以指定标识符。这个标识符可以用来管理通知。在 iOS 10 之前,我们很难取消掉某一个特定的通知,也不能主动移除或者更新已经展示的通知。iOS 10 中,UserNotifications 框架提供了一系列管理通知的 API,你可以做到1、取消还未展示的通知2、修改还未展示的通知3、删除已经展示过的通知4、修改已经展示过的通知其中关键就在于在创建请求
2017-03-31 16:06:14
2814
原创 iOS10通知(二)--发送通知
在新版本的通知框架中,苹果采用网络请求的风格,我们发送一个通知请求,然后将这个请求提交给UNUserNotificationCenter进行处理,然后我们会在 delegate 中接收到这个通知请求对应的 response,另外我们也可以在应用的 extension 中对 request 进行处理。1、下面是发送通知的实现代码段,此处实现的是一个延时发送的通知类型,有兴趣的可以自行实现余下
2017-03-31 15:54:43
1006
原创 iOS10通知(一)--申请授权、注册和获取授权信息
此系列工程开发环境为xcode 8.21、创建工程,开启通知权限。开启后如果确认证书和自己的Boundle ID设置正确的情况下,第一个出现红色的叉叉,可以尝试clear之后退出xcode2、创建通知的代理管理类(NotificationHandle),这样可以将代码分类管理#import #import #import @interface NotificationH
2017-03-31 15:32:29
3829
原创 iOS10通知(前篇)
最近有时间研究了一下iOS10新出的通知框架,不得不说,新的框架开放了很多新的功能,能够让你用起来欲罢不能,哈哈总结起来新的框架有以下几点不同点1、不在区分本地和远程通知,有了统一的行为。本地通知又分为如下多种类型UNTimeIntervalNotificationTrigger (本地通知) 一定时间之后,重复或者不重复推送通知UNCalendarNotificationTrigg
2017-03-31 15:07:05
740
原创 iOS runtime(二)
本文通过一个示例来介绍runtime的拦截替换方法的使用,该魔法主要用于给系统方法添加新的功能,示例为系统按钮的点击事件增加了一个计算点击次数的方法。#import "UIButton+Count.h"#import #import "ZTools.h"@implementation UIButton (Count)+ (void)load{ static dispatc
2017-03-20 16:54:28
317
原创 iOS runtime(一)
runtime,直译的意思就是运行时,这是iOS开发中很重要的一个概念,其本质就是消息发送机制,是iOS开发中的一个黑魔法。众所周知,OC在编译阶段,不管是否有实现这个方法,都可通过编译,这就给开发者留下了很大的空间,可以利用黑魔法,在函数执行的时候动态做一些事情。下面就是我学习runtime的一点记录。本文介绍runtime的常用方法,包括动态获取一个对象的成员变量、属性、方法以及遵守的协议
2017-03-20 16:11:16
337
原创 微信支付-简易实例代码
最近由于项目需要集成微信支付,这里记录一下集成过程中的步骤。要集成微信支付首先需要到微信开发者平台注册企业开发者。注册成功之后,收集项目用的唯一id,iOS为Boundle ID,Android为包名。然后在开发中心创建应用,得到项目的AppId、MchId-商户账户,获取支付能里后,从邮件中得到、AppSercret-商户密钥,32位字符串,在商户平台中设置。得到这三个值后就可以开始开发了。
2017-03-17 09:52:25
4883
原创 Spring+Spring MVC+Mybatis框架整合详细教程
此文是笔者根据下面的博文整理的框架整合的详细步骤,首先感谢下面博文的笔者。http://blog.youkuaiyun.com/zhshulin/article/details/37956105eclipse、maven、java、mysql的环境安装这里就不详细介绍了,下面教程的前提是上述环境都已经确保没有问题。下面就详细描述我整合整个框架的详细步骤,文章最后会给出工程的源码。一
2017-03-10 17:09:06
736
原创 Confluence5.8.10安装过程
之前自己安装一直是参考下面地址安装,为了留个纪念就转到自己博客里面了http://www.iigrowing.cn/confluence5_8_10_xiang_xi_an_zhuang_guo_cheng.html安装过程中的相关软件下载地址链接: https://pan.baidu.com/s/1hsaDwfa 密码: m9ke第一步:安装java的
2017-03-10 12:16:53
2137
原创 解决h5调用相机时页面dismiss到根控制器的问题
在调用h5的vc中重写下面代码即可- (void) dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion { if ( self.presentedViewController) { [super dismissViewControllerAnimated:flag
2017-01-23 10:19:23
903
ASP实现的超市在线交易系统,也可用于网上购物类
2011-09-07
网上搜罗的10个asp做的网上购物的实例
2011-08-30
asp+sql+网上购物系统
2011-08-30
ASP实现的网上购物 比较简单的那种
2011-08-30
EEPROM器件读写例程设计
2011-06-24
基于Socket的多对多网络聊天
2011-06-12
数据结构实验 各种排序的实现
2011-06-11
基本模型机的设计——跳转指令的实现
2011-05-31
磁盘移臂调度过程模拟设计
2011-05-31
FOR循环语句的翻译程序设计
2011-05-31
visual.c_6.0应用编程150例源代码
2011-05-11
google编程风格指南
2011-05-11
myeclipse8.5汉化工具,绝对可以成功的,我试过了 ……
2010-12-12
计算机组成原理试卷(本科生使用)有20份包括试题和答案计算机组成原理试卷(本科生使用)有20份包括试题和答案计算机组成原理试卷(本科生使用)有20份包括试题和答案
2010-12-07
拓扑排序 作为数据结构中一种经典的算法 喜欢的同学可以看看 绝对有用 在vc6.0上可以运行
2010-09-24
mybatis-generator-core-1.3.2,自动映射工具
2017-03-10
php+apache+mysql x64
2016-07-01
apache+mysql+php
2016-07-01
apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi
2013-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人