自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

番薯大佬的专栏

快乐学习、快乐分享

  • 博客(1024)
  • 资源 (53)
  • 收藏
  • 关注

原创 mac操作脚本——隐藏文件的显示或不显示

显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool true不显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false

2019-07-10 17:13:56 394

原创 视图控制器的各种frame获取

获取全屏视图的位置大小,高包含状态栏和导航栏高UIScreen.mainScreen.bounds{0,0,320,568}获取全屏视图的位置大小(@2x)UIScreen.mainScreen.nativeBounds{0,0,640,1136}获取全屏视图的位置大小,高不包含状态栏UIScreen.mainScreen.applicationFrame{0,20,320,548...

2019-07-08 17:45:58 493

转载 设计模式是什么

转载在软件设计中,各个模块之间怎样组织通信成为一个优雅健壮的整体,以便保证良好的可重用性和扩展性,这对于设计人员至关重要,于是有人将这些组装模式总结了出来,成为一种道,设计模式之道。首先我们得搞清楚点面向对象的概念,面向对象其实是对现实世界的理解和抽象的方法,也就是在计算机世界里去模拟现实世界的一种编程方法,具体是利用封装、继承、多态的方法去建立模型,我们一个个看下这都是些什么鬼。01 封...

2019-07-03 14:29:44 364

转载 淘宝服务端高并发分布式架构演进之路

淘宝服务端高并发分布式架构演进之路1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称...

2019-07-03 12:32:55 244

转载 什么是线程安全,你真的了解吗?

转载1、什么是进程?先来看一张图我们看到的这些单独运行的程序就是一个独立的进程,进程之间是相互独立存在的。我们上面图中的QQ、酷狗播放器、电脑管家等等都是独立的进程。2、什么是线程?上面简单的说了一下什么是进程,进程想要执行任务需要依赖线程,换句话说就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。3、什么是多线程?提到多线程这里要说两个概念,就是串行和并行,搞清楚...

2019-07-03 12:17:14 450

转载 并发编程之死锁解析

转载前言在 Java 的并发编程中,有一个问题需要特别注意,那就是死锁,如果发生了死锁,基本就是重启,而重启将会丢失运行中的数据。所以,了解死锁的形成并排查死锁到预防死锁成了一个重要的问题。我们了解任何一个事情的步骤是:what,how,why,why not。1. 什么是死锁?我们还是直接写一段代码来看看:package hello;public class DeadLock {...

2019-07-03 12:12:34 220

转载 高并发场景下缓存处理的一些思路

转载在实际的开发当中,我们经常需要进行磁盘数据的读取和搜索,因此经常会有出现从数据库读取数据的场景出现。但是当数据访问量次数增大的时候,过多的磁盘读取可能会最终成为整个系统的性能瓶颈,甚至是压垮整个数据库,导致系统卡死等严重问题。常规的应用系统中,我们通常会在需要的时候对数据库进行查找,因此系统的大致结构如下所示:当数据量较高的时候,需要减少对于数据库里面的磁盘读写操作,因此通常都会选择在...

2019-07-03 12:04:04 299

原创 国际化多语言

官网介绍NSLocalizedString 使用说明一、国际化多语言的介绍App 国际化多语言,就是在 App 里预定义了多种语言的Localizable.strings文件,根据设备的系统语言自动识别显示对应的语言,或者是在应用内设置不同的语言识别显示对应的语言。1、随系统语言国际化跟随系统语言进行改变。实现时,需要Kill掉App重新打开才会有效果。2、随应用内语言设置国际化应...

2019-06-23 20:49:53 1833

翻译 架构和框架

转载人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。其实很简单,一句话:框架是软件,架构不是软件。框架落脚在“架”字上,可以理解成名词性的,是一个客观性的名词存在,如 .Net Framework;而架构体现在“构”字上,理解成构造,是一个动词性的,是一系列动作发生的策略性体现。框架是一种特殊的软件,它并不能...

2019-06-21 13:52:07 265

原创 block循环引用

自从 block 横空出世,它本身就封装了一段代码当做变量,Apple 导入 block 语法之后就大幅改变了撰写 Objective-C 语言的方法。block 是Cocoa/Cocoa Touch Framework 中的匿名函式(Anonymous Functions)的实作。所谓的匿名函式,就是一段 具有物件性质的程式码,这一段程式码可以当做函式执行,另一方面,又可以当做物件传递;因为可...

2019-06-21 13:44:21 882

原创 图片加载优化

图片的显示分为三步:加载、解码、渲染。加载:CPU,未解码的压缩数据image解码:UIKit,赋值时imageView.image = image进行解码变成RGB颜色数据,CPU和内存负载瞬间增长,CPU处理(与图片宽高成正比)渲染:UIKitUIImage *image = [UIImage imageNamed:@“xxx”];1、加载时,消耗CPU,数量大时,造成卡顿2、通过...

2019-06-19 13:40:12 486

原创 APP应用评分

示例/// 应用地址static NSString *const kAppUrl = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=……";+ (void)showReviewWithTarget:(id)target { if (target ...

2019-06-10 22:56:44 1506

原创 iOS集成系统分享功能

使用UIActivityViewController集成系统分享功能/** 分享 @param title 标题 @param image 图标 @param url 链接 @param target r视图控制器 @param complete 回调 */+ (void)shareWithTitle:(NSString *)title image:(UIImage *)ima...

2019-06-10 22:54:40 543

原创 APP应用发送邮件

使用MFMailComposeViewController发送邮件。1、导入头文件#import <MessageUI/MessageUI.h>2、实现MFMailComposeViewControllerDelegate代理方法3、示例// 判断用户是否已设置邮件账户if ([MFMailComposeViewController canSendMail]) { ...

2019-06-10 22:53:15 2509

原创 指定视图超屏蔽范围截图功能实现

指定视图超屏幕范围截图,如:UITextView、UIScrollView、UITableView、UICollectionView等包含contentOffSize属性的视图。如下示例:/// 屏幕截图(指定视图)(UIImage *)screenImageWithView:(UITextView *)view{UIGraphicsBeginImageContextWithOptio...

2019-05-20 17:32:59 391

原创 NSLog打印查年数组字典对象的中文信息

使用NSLog查看信息时,如果是NSArray、NSDictionary、NSObject的对象时,无法查看到详细的信息,特别是中文时,无法正常显示,这时候需要进行特殊设置。1、对于NSArray、NSDictionary时,需要创建分类,并重写方法- (NSString *)descriptionWithLocale:(id)locale实现;2、对于NSObject时,需要创建分类,重写方...

2019-04-17 17:44:03 422 3

原创 摄像头权限判断

- (BOOL)isValidDevice{ /// 先判断摄像头硬件是否好用 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { // 用户是否允许摄像头使用 AVAuthorizationStatus aut...

2019-03-29 17:19:41 602

原创 移动蜂窝网络在应用中的使用监测

APP应用在使用网络时,可以设置网络类型:关闭、WLAN、WLAN与蜂窝移动网络示例代码主要功能在于监测是否开启了蜂窝移动网络,kCTCellularDataNotRestricted状态时则表明该APP可以使用蜂窝移动网络。#import <CoreTelephony/CTCellularData.h>CTCellularData *cellularData = [[CTCe...

2019-03-26 17:51:43 1055

原创 判断网络是否使用代理服务器

直接上代码呗// 导入头文件#import <SystemConfiguration/CaptiveNetwork.h>// 代码实现- (BOOL)isUseProxy{ CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings(); const CFStringRef proxyCFstr = (...

2019-03-20 16:23:13 4579

原创 自定义格式化字符串NSStringFromFormat(NSString *format, ...)

自定义类型NSLog格式的格式化字符串方法,如下所示:/// 格式字符串NSString *NSStringFromFormat(NSString *format, ...){ va_list list; va_start(list, format); NSString *string = [[NSString alloc] initWithFormat:format...

2019-03-12 11:44:57 1790

原创 UITabBarController的使用自定义UITabBar样式

UITabBarController的使用过程中,可能会出现需要自定义UITabBar样式的时候,下面介绍两种实现方法。方法1存在N个视图控制器,且需要使用自定义的UITabBar样式来进行交互操作哪个视图控制器的显示。具体做法是在UITabBarController中的view中添加自定义样式的子视图,设置子视图响应方法跳转对应的视图控制器,然后再通过UITabBarController的代...

2019-03-07 18:42:00 5259

原创 系统日历和提醒功能的操作写入编辑读取删除

调用系统的日历和提醒功能时,需要使用导入相关类库头文件#import &lt;EventKit/EventKit.h&gt;。日历功能写入- (void)addCalendarWithTitle:(NSString *)title content:(NSString *)content location:(NSString *)location rule:(EKRecurrenceRule ...

2019-03-05 19:30:59 826

原创 根据时间进行视频的裁剪

一个视频自由设置时间,并裁剪成更短时间的视频。示例代码如下:+ (void)videoClippingWithFilePath:(NSString *)filePath start:(CGFloat)startTime end:(CGFloat)endTime complete:(void (^)(BOOL isSuccess, NSString *videoPath, Float64 vid...

2019-02-27 01:32:53 846

原创 视频截图获取视频某一帧做图片

本地存储的视频文件,通过某些方法获取该视频的首帧图片,或是某个时间的图片,或是该视图不同时间段的多张图片。获取视频第一帧的图片,示例代码如下:+ (UIImage *)videoThumbnailWithFilePath:(NSString *)filePath{ if (filePath == nil || filePath.length &lt;= 0) { re...

2019-02-27 01:29:11 6234

原创 iOS的多target开发相似App

当多个APP项目功能大同小异,且大多数代码可以通用时,就需要在一个项目中通过设置不同的target进行开发。即功能代码类似,但应用名称、应用图标、启动图、应用包名和证书不相同。Demo多target使用注意事项1、区分不同的target文件配置,如:应用名称、包名、版本号、证书、描述文件、plist文件等2、target中的Preprocessor Macros中的宏定义,如:Versio...

2019-02-13 16:08:45 671

原创 是否有刘海的机型(iPhoneX iPhoneXR iPhoneXS iPhoneXSMax)适配判断

1、5.8(iPhoneX、iPhoneXs):1125x2436(375812)2、6.1(iPhoneXR):828x1792(414896)3、6.5(iPhoneXs Max):1242x2688(414*896)刘海等安全区域位置:状态栏:44(无刘海时20)底部:34(无一道杠时0)方法1CGFloat height = UIApplication.sharedAppli...

2019-02-12 14:44:56 3869

原创 UITextField数字输入限制

使用通知的方式,限制UITextField的输入。代码示例如下:UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(currentView.frame.origin.x, currentView.frame.origin.y + currentView.frame.size.height + 20.0, ...

2019-01-30 14:37:16 954

原创 图片保存到指定沙盒目录

代码示例1、图片UIImage转二进制数据NSDataUIImage *image = [UIImage imageNamed:@"android"];NSData *data = UIImageJPEGRepresentation(image, 1.0);2、获取沙盒目录documentNSArray *paths = NSSearchPathForDirectoriesInDoma...

2019-01-15 14:48:01 1029

原创 保存视频到相册

代码示例NSString *filePath = @&quot;xxxx&quot;;UISaveVideoAtPathToSavedPhotosAlbum(filePath, weakSelf, @selector(video:didFinishSavingWithError: contextInfo:), nil);- (void)video:(NSString *)videoPath didFinish...

2019-01-10 20:01:38 1003

原创 保存图片到相册

代码示例UIImage *image = [UIImage imageWithContentsOfFile:@&quot;xxx&quot;];UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);- (void)image:(UIImage *)imag...

2019-01-10 19:56:25 764

原创 UIScrollView结合UIImageView实现图片缩放

实现UIImageView的图片缩放功能,需要结合UIScrollView实现。示例代码// 定义缩放比例CGFloat scaleMini = 1.0;CGFloat scaleMax = 3.0;// 主视图 UIScrollViewUIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.b...

2019-01-10 18:03:44 2041

原创 状态栏字体颜色设置

根据不同的主题设置状态栏的字体颜色,主要有以下几种实现方法。注意:状态栏的字体颜色分两种,一种是黑色,另一种是白色。步骤1设置info.plist中的属性View controller-based status bar appearance的值设置为NO步骤2在AppDelegate.m的方法中如下设置,默认会显示黑色等于为你的app状态栏设置一个主颜色,示例如下:- (BOOL)...

2019-01-10 14:57:29 3006

原创 系统视频播放器——MPMoviePlayerController

导入头文件#import &lt;MediaPlayer/MediaPlayer.h&gt; 和 #import &lt;AVKit/AVKit.h&gt;效果图代码示例@property (nonatomic, strong) MPMoviePlayerController *moviePlayerController;// 定义成局问变量时,黑屏无法播放,需要定义成全局变量,或属性...

2019-01-04 19:36:16 2456

原创 系统视频播放器——AVPlayerItem AVPlayer AVPlayerLayer

使用AVPlayerItem AVPlayer AVPlayerLayer实现视频播放功能需要导入头文件#import &lt;AVKit/AVKit.h&gt;效果图代码示例// 定义@property (nonatomic, strong) AVPlayer *avPlayer;@property (nonatomic, strong) UILabel *timeLabel;...

2019-01-04 19:30:48 7052

原创 系统视频播放器——AVPlayerViewController

需要导入头文件#import &lt;AVKit/AVKit.h&gt; 和#import &lt;AVFoundation/AVFoundation.h&gt;效果图代码示例AVPlayerViewController *playerController = [[AVPlayerViewController alloc] init];playerController.showsPlay...

2019-01-04 19:27:34 1657

原创 系统视频播放器——MPMoviePlayerViewController

需要导入头文件#import &lt;MediaPlayer/MediaPlayer.h&gt;效果图代码示例// 实例化MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; playerController.mov...

2019-01-04 19:24:55 1229

原创 真机调试报错 Could not locat device support files

真机调试报错,如下图所示。手机系统:iOS 12.1.2xCode:10.0错误原因在于xcode版本不支持12.1.1版本的手机调试。解决方案:在程序目录下添加版本支持即可。1、下载地址https://pan.baidu.com/s/1OnZuWG9CVyQWcr9P6nVgVA 提取码: 45pm2、安装目录文件夹/应用程序/Xcode.app/Contents/Develop...

2019-01-04 13:53:35 546

原创 修改了系统库框架文件报错 Counld not build module xxxx

如下图所示,不小心修改了系统框架文件,导致报错 Could not build module 'AVKit' 编译不了。正确的是AVPlayerViewController 被误改成了AVPlayerVC解决方案找到相应文件进行修改即可。如下图所示/Applications/Xcode_10.app/Contents/Developer/Platforms/iPhoneSimulat...

2019-01-03 19:08:52 534

原创 使用 JSONkit 出现Assignment to Objective-C's isa is deprecated in favor of object_setClass()错误

使用 JSONkit 出现Assignment to Objective-C's isa is deprecated in favor of object_setClass()错误。如下图所示:解决方案:将Direct usage of 'isa'属性值改成NO。修改方法如下图所示:...

2018-12-19 17:07:45 1696

原创 CocoaPods第三方库后编译时报错linker command failed with exit code 1 use -v to see invocation clang

MRC项目中使用CocoaPods安装第三方库后,编译时报错:linker command failed with exit code 1 use -v to see invocation clang解决方案在配置中Other Linker Flags添加属性$(inherited)路径:TARGETS——Build Settings——Linking——Other Linker ...

2018-12-17 18:14:23 1040

DemoNSUserdefault

iOS研发中数据缓存UserDefault的使用(Demo+文档)

2016-04-17

DemoSqlite

iOS研发中数据缓存sqlite、FMDB、LKDBHelper的使用(Demo+文档)

2016-04-17

DemoKeychain

iOS研发中数据缓存keychain的使用(Demo+文档)

2016-04-17

DemoCoreData

iOS研发中数据缓存coreData的使用(Demo+文档)

2016-04-17

DemoArchivedCoding

iOS研发中数据缓存archiver归档的使用(Demo+文档)

2016-04-17

SQLite关系型数据库的使用

iOS研发中数据缓存SQLite的使用

2016-03-26

FMDB数据库使用

iOS研发中数据缓存FMDB的使用

2016-03-26

coreData使用

iOS研发中数据缓存coreData的使用

2016-03-26

Archiver归档的使用

iOS研发中数据缓存archiver归档的使用

2016-03-26

DemoMVVM架构模式

iOS开发中常用到的技术架构为MVC,但也有用到MVVM。两者主要体现在VM将业务相关逻辑进行了封装,减轻了Controller的负担。

2016-03-02

Demolimit输入限制

在iOS开发中,常会遇到输入限制的情况。本文件档整理了常用到的输入限制,如数字输入限制,长度限制等。定义的方法既有是在代理方法中使用的,也有在通知方法中使用。

2016-02-15

DemoTimeDate

iOS开发中常用到的时间类处理封装,包括各种转换格式。如NSDate转成NSString,或NSString转成NSDate,等。

2016-01-07

小方块输入框

自定义方块输入框,类似于微信支付密码的小方块输入框

2015-11-28

CollectionView的使用

UICollectionView的使用范例,即瀑布式列表的使用。

2015-11-26

iOS移动开发框架

iOS移动开发根视图开发框架设置,Demo中包括抽屉样式,tabbar样式

2015-11-04

iOS移动开发AES加解密

iOS移动开发中使用到的AES加解密技术,使用AES256位加密,解密。

2015-11-04

iOS移动开发MD5加密

iOS开发中常用到的字符串进行MD5加密,区分32位大小写加密,16位大小写加密

2015-11-04

DemoKVO_KVC

KVO即Key-Value Observing,称为键值观察者。是一种编程设计模式,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 KVC即Key-Value Coding,称为键值编码,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。

2014-09-03

Notification

通过使用NSNotification通知类,可以实现一对多的传递关系,同时也能很好的避免类与类之间层层递进的关系。但是必须记得在使用过程中可能出现通知会被多次接收,并执行相关的方法,避免这种情况出现必须在接收通知前先移除要接收的通知。

2014-07-11

设备闪光灯

iOS开发中,使用设备闪光灯,即打开或关闭设备的闪光灯。如开发手电筒功能,或是扫一扫功能时设置闪光灯。

2014-07-02

DemoTargetDev

一个项目多个target,通过配置不同的信息,类似多个app。

2019-02-13

demoHitTest

子视图超出父视图范围时,子视图交互也能实现响应事件。

2018-11-08

DemoSignature

使用UberSignature实现手写签名。简单易用,接口API少而简,可以设置位置和大小,也可以设置画笔颜色。

2018-07-26

ViewDeck抽屉菜单

使用第三方框架ViewDeck在项目中设置抽屉式菜单。即设置中间视图控制器,左侧视图控制器,以及右侧视图控制器。或上、下视图控制器。

2017-09-19

RESideMenu抽屉视图

使用第三方框架RESideMenu在项目中设置抽屉式菜单。即设置中间视图控制器,左侧视图控制器,以及右侧视图控制器。

2017-09-19

DemoTablePageAndFrame

计算拖动时的页码以及自动加载

2017-04-18

DemoMKWebView

web view使用的优化,使用MKWebView替换UIWebView

2016-09-23

licecap录制gif软件

录制gif软件

2016-09-09

Mac中jenkins的使用

使用jenkins进行自动化构建

2016-08-23

DemoAnimation

动画效果的实现操作

2016-08-01

DemoNetwork

iOS原生网络请求,使用session,或connection方式

2016-07-24

DemoEmailSMS

iOS APP应用中打电话,发短信,发邮件功能的实现

2016-07-15

DemoThread

多线程使用示例,包括thread,operation,GCD。

2016-07-14

DemoRecognizer

手势操作UIGestureRecognizer,或UITouch

2016-07-09

DemoNSTimer

NSTimer计时器的使用,启动,停止等操作。

2016-07-08

DemoImageTableView

自定义cell中使用添加多个图片并自适应cell高度(类型于电商平台的商品评价添加图片)

2016-07-04

DemoIceRequest

iOS开发中,使用ZeroC ICE进行网络请求。

2016-05-12

DemoRecorder

录音以及音频的播放操作处理。

2016-04-29

DemoiflyMSC

使用科大讯飞进行语音书写。

2016-04-28

DemoPlist源码文档

iOS研发中数据缓存plist的使用(Demo+文档)

2016-04-17

空空如也

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

TA关注的人

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