- 博客(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 <EventKit/EventKit.h>。日历功能写入- (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 <= 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 = @"xxxx";UISaveVideoAtPathToSavedPhotosAlbum(filePath, weakSelf, @selector(video:didFinishSavingWithError: contextInfo:), nil);- (void)video:(NSString *)videoPath didFinish...
2019-01-10 20:01:38 1003
原创 保存图片到相册
代码示例UIImage *image = [UIImage imageWithContentsOfFile:@"xxx"];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 <MediaPlayer/MediaPlayer.h> 和 #import <AVKit/AVKit.h>效果图代码示例@property (nonatomic, strong) MPMoviePlayerController *moviePlayerController;// 定义成局问变量时,黑屏无法播放,需要定义成全局变量,或属性...
2019-01-04 19:36:16 2456
原创 系统视频播放器——AVPlayerItem AVPlayer AVPlayerLayer
使用AVPlayerItem AVPlayer AVPlayerLayer实现视频播放功能需要导入头文件#import <AVKit/AVKit.h>效果图代码示例// 定义@property (nonatomic, strong) AVPlayer *avPlayer;@property (nonatomic, strong) UILabel *timeLabel;...
2019-01-04 19:30:48 7052
原创 系统视频播放器——AVPlayerViewController
需要导入头文件#import <AVKit/AVKit.h> 和#import <AVFoundation/AVFoundation.h>效果图代码示例AVPlayerViewController *playerController = [[AVPlayerViewController alloc] init];playerController.showsPlay...
2019-01-04 19:27:34 1657
原创 系统视频播放器——MPMoviePlayerViewController
需要导入头文件#import <MediaPlayer/MediaPlayer.h>效果图代码示例// 实例化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
Demolimit输入限制
2016-02-15
DemoKVO_KVC
2014-09-03
Notification
2014-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人