自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(255)
  • 资源 (3)
  • 收藏
  • 关注

原创 iOS UITextField金额、价格输入限制

四行代码搞定金额输入限制做支付的时候,不免要进行金额、价格的输入,但在输入的时候,如果可以实现相应的限制,使其只能进行合法价格、金额的输入,这将大大提高用户体验,网上的很多方法都是使用判断语句进行特判,学习了正则表达式之后,就尝试用正则表达在代理里面进行实现。一个支付金额、价格UITextField输入框,限定输入价格类型的数字。只能输入合法的金额数字,其它字符一律无法输入,在UIText...

2018-12-13 13:53:59 924

原创 用objective-c 实现常用算法(冒泡、选择、快速、插入)

下午研究了下用oc实现常用的算法,参考了一些资料后自己用代码检验了下,以下代码均测试可用。其中arr参数是一个可变数组,其中存的是NSNumber类型的数据,具体如下:NSArray *arr = @[[NSNumber numberWithInt:10],[NSNumber numberWithInt:1],[NSNumber numberWithInt:3],[NSNumber numb...

2018-09-18 15:11:47 389

转载 iOS-面试题整理

※】@property中有哪些属性关键字?访问控制组nonatomic atomic内存管理组weak strong copy读写组readwrite readonly重命名组getter setter【※】weak属性需要在dealloc中置nil么?不需要, 使用weak修饰的属性, 会在RC从1变为0的时候自动销毁,并置为nil【※※】@synt...

2018-09-11 17:49:05 383

转载 二叉树相关算法实现-iOS

二叉树-你必须要懂!(二叉树相关算法实现-iOS)这几天详细了解了下二叉树的相关算法,原因是看了唐boy的一篇博客(你会翻转二叉树吗?),还有一篇关于百度的校园招聘面试经历,深刻体会到二叉树的重要性。于是乎,从网上收集并整理了一些关于二叉树的资料,及相关算法的实现(主要是Objective-C的,但是算法思想是相通的),以便以后复习时查阅。什么是二叉树?在计算机科学中,二叉树是每个节点...

2018-08-31 14:35:04 410

原创 二叉树遍历分析

简单二叉树遍历,可分为:先序,中序,后序。  在此分别总结先序,中序,后序的结点输出顺序。  先序: 1.访问根结点    2.访问左子树    3.访问右子树 先序较简单,不予以即系解释。  中序:1.访问左子树     2.访问根结点       3.访问右子树    原则:访问左子树。【先访问左子树中的左子树,再访问左子树中的右子树。】直到访问到叶...

2018-08-31 10:42:20 923

原创 iOS 字符串反转逆序输出

1、实现一个字符串“how are you”的逆序输出(编程语言不限)。如给定字符串为“hello world”,输出结果应当为“world hello”。//调用 stringReverse("hello world");//实现void stringReverse(char *p){ char c[100][100]; int i=0; int j=...

2018-08-31 10:28:24 1284

转载 iOS底层原理总结 - 探寻KVO本质

对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。问题 iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 如何手动触发KVO 首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。- (void)viewDidLoad {    ...

2018-08-27 14:21:56 189

原创 iOS 多任务全部执行完后再执行操作

1. 有两个加载图片的任务,全部加载完成后在进行相应操作,耗时操作不应该放在主线程,所以开启子线程加载,通过队列组实现:{ // 创建队列组 dispatch_group_t group = dispatch_group_create(); // 创建并发队列 dispatch_queue_t queue = dispatch_get_global_queu...

2018-08-14 21:47:53 2511

原创 iOS 中利用strong,copy,assign,weak修饰变量的异同点

ARC中在iOS开发中定义@property属性时,经常用到assign、weak、strong、copy等关键字。我们经常会考虑在何时应该使用哪个关键字,尤其是在面试的时候,经常会被问到这些关键字之间的区别,下面详细和大家探讨一下:assign:用于对基本数据类型进行赋值操作,不更改引用计数。也可以用来修饰对象,但是,被assign修饰的对象在释放后,指针的地址还是存在的,也就是说指针并...

2018-08-14 13:44:15 366

转载 runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用

目的本文主要跟大家分享iOS攻城狮比较感兴趣的知识点runtime。示例代码在这里:WHRuntimeDemo 读完并理解这篇文章之后,你将掌握下面这几个问题的答案。1. 什么是runtime运行时2. 什么是isa指针3. 什么是SEL,什么是IMP, 什么是Method4. 什么是消息机制5. runtime运行时的8种使用场景  概述runt...

2018-08-14 11:15:55 327

转载 iOS NSDictionary(字典)~实现原理

1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的好坏影响着数据的查找访问效率。    - (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;2.Objective-C 中的字典 NSDictionary 底层其实是一个哈希表,实际上绝大多数语言中...

2018-08-14 10:05:41 1206

转载 IOS 中 KVO,KVC 的区别与联系 KVO 底层实现机制

首先声明 我的标题本身就是个伪命题!!! KVC 与 KVO 的关系 就好比雷锋和雷峰塔的关系 标题就是为了吸引小白和准备开喷的大牛们    真是机智如我 哈哈哈哈哈哈~~闲言少叙 进入正题上一篇文章我提到过 KVC  了解 KVC 移步到这里KVC的本质就是 (键值编码)定义: 在对象创建完成之后,动态(牵扯到运行时)的给对象的属性赋值KVC,即是指 NSKeyVal...

2018-08-07 16:05:58 438

转载 CMTime简单介绍

通常开发者认为时间的呈现格式应该是浮点数据,我们一般使用NSTimeInterval,实际上它是简单的双精度double类型,只是typedef了一下,但是由于浮点型数据计算很容易导致精度的丢失,在一些要求高精度的应用场景显然不适合,于是苹果在Core Media框架中定义了CMTime数据类型作为时间的格式,类型定义如下: typedef struct CMTimeV...

2018-07-31 11:24:04 2180

原创 No suitable application records were found. Verify your bundle identifier 'com.aaa.bbb

第一种情况:打包工程,Validate 的时候提示: No suitable application records were found. Verify your bundle identifier ‘xxx’ is correct.原因:你没有在 iTunes Connect 中是否建立了对应 bundle id 的 App, 创建好再 Validate 即可。第二种情况:...

2018-07-26 16:44:14 3998

转载 iOS开发中如何模拟IPv6网络测试 App

苹果于2016年5月4日告知开发者应用需要在6月1日前支持IPv6-only,也就是说在 6 月 1 日后发布的新版本是需要支持 IPv6-only.原文地址:https://developer.apple.com/news/?id=05042016a请看下图:Paste_Image.png其中蓝色部分的高级API,其实都已经帮我们做好了IPv6的支持,我们使用的大多数第三方网络库...

2018-07-23 11:13:21 2055

原创 tableview取消单个侧滑的cell

[self.tableView setEditing:NO animated:YES];

2018-06-29 10:14:10 670

原创 移动应用App唤起微信小程序

写在前面的话:小编最早使用了友盟分享组件,其中友盟sdk又包含了微信的sdk。需求要求应用唤起微信小程序,但是微信小程序有需要最新版的sdk。此时的问题就升级到,更新友盟sdk。小编打开友盟后台Down了一份,看到友盟的sdk已经包含了唤起小程序的微信sdk,网速渣渣的情况下,升级了一上午,终于完成了sdk的导入。下面就是正式的跳转问题:1:移动应用App唤起微信小程序具体流程:登陆微信开放平台管...

2018-06-19 15:01:53 30187 3

转载 IOS开发——获取本地音频文件(属性/信息)

获取本地音频文件地址:NSString *songsDirectory=MUSIC_FILE_ALL;//沙盒地址 NSBundle *songBundle=[NSBundle bundleWithPath:songsDirectory]; NSString *bundlePath=[songBundle resourcePath]; NSArray *arrMp3=[...

2018-05-24 11:56:05 2979

转载 如何通过友盟的错误分析报告,定位到错误代码的位置

加入友盟统计功能后,友盟后台会有一个错误分析的统计项,点进去之后可以查看项目的错误报告。对于开发人员来说,查看报告不是最终目的,找到错误的原因才是最终目的。如何通过这堆报告定位到错误的代码呢?早上查了好些资料,终于成功了。我们先看一下错误报告是什么样的:友盟错误报告这份报告所包含的主要信息有:1、首行是错误的原因。显而易见,以上的错误是由于数组越界了。2、打红色马赛克的地方是你的工程名字。3、红色...

2018-04-12 15:16:09 902

原创 reloadRowsAtIndexPaths会闪一下解决方法

使用单纯的reloadRowsAtIndexPaths刷新tableview高度会导致页面上下闪动。解决方法:把该代码包在UIView的无动画block方法里就可以解决。[UIView performWithoutAnimation:^{                    [weakSelf.tableView reloadRowsAtIndexPaths:[NSArray arrayWith...

2018-03-30 19:09:19 4027

原创 appstore 上架新版本后有比较严重的问题,可以直接在appstore回滚到老版本吗?

不可以,但是可以提交新版,然后申请加急审核,一般一天就能通过。申请的时候最好是说问题比较严重,会导致app崩溃,所以希望能够得到加急审核,尽快的修复线上App的问题。加急地址:https://developer.apple.com/contact/app-store/?topic=expedite

2017-12-22 11:05:36 26528

转载 iOS开发,UISlider滑块不灵敏问题以及在UIScrollView上添加Slider造成手势冲突问题心得

最近在做项目时候有如下这样一个界面1.png这个页面涉及到视频播放拖动进度条的需求,测试那边提过来的bug是进度条滑块不够灵敏,交互的时候很难响应用户的操作.苦逼码农一枚,提了bug就得改啊.正文在网上看了很多关于这方面的处理,总结了下大致3种方法一种是直接改变滑块图片的大小.但是在项目中有时为了整体风格的统一和样式匹配.不方便修改图片大小.所以个人不是很喜欢这个解

2017-12-08 15:16:45 2831

转载 [[NSBundle mainBundle]pathForResource..取值为空

转载至:http://blog.csdn.net/zww1984774346/article/details/78128148最近遇到一个奇葩的问题,使用[[NSBundle mainBundle]pathForResource:imageName ofType:@"png"];获取图片一直取不到图片,简直晕死,一直好用的方法突然不行了,只能另寻它法了。这里提出一个解决方案仅供参考

2017-09-28 21:21:14 2654

转载 App适配iOS 11

随着Xcode GM版本发布,适配iOS 11也就提上了日程,总的来说整个适配过程(不包含适配iPhone X)不是很麻烦。首先建议观看今年WWDC的一个视频 Updating Your App for iOS 11,视频讲解了iOS 11一些API的变化,对理解适配过程有帮助。navigation bar1、导航栏新增了一种大标题样式,默认设置是不开启,所以不需要修改。2、t

2017-09-22 14:11:05 430

转载 iOS In-App Purchase 内购之 问题总结

1、内购流程1、在 AppStore 中创建相应的物品,创建内购沙盒测试账号2、客户端从后台获取相应的物品 ID (当然也可以再客户端写死,但后期扩展性就受限制了)3、依据相应的物品 ID 请求商品的相关信息4、依据商品信息创建订单请求交易5、依据返回的订单状态处理交易结果6、请求后台再次验证订单状态7、依据后台返回结果处理相关逻辑2、创建内购物品以及沙盒测试账号已经有朋友写出

2017-08-30 13:55:52 1205

原创 iOS In-App Purchase 内购之 验证订单是沙盒环境还是真实环境

测试环境在sandbox中验证receipt:https://sandbox.itunes.apple.com/verifyReceipt在生产环境中验证receipt:https://buy.itunes.apple.com/verifyReceipt那么如何自动的识别收据是否是sandbox receipt呢?识别沙盒环境下收据的方法有两种:根据收据字段

2017-08-30 13:51:49 3790

原创 iOS使用UIScrollView实现无限循环轮播图

//// ViewController.m// 无限轮播//// Created by limin on 17/8/23.// Copyright © 2017年 none. All rights reserved.//#import "ViewController.h"@interface ViewController ()/* 定时器 */@property(n

2017-08-23 11:56:28 1728

原创 NSRunLoopCommonModes和NSDefaultRunLoopMode区别时发现

#pragma mark - add Timer- (void)addTimer{ __weak ViewController *weakSelf = self; NSTimer *timer = [NSTimer timerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) { wea

2017-08-23 09:46:40 1418

转载 Core Graphics使用 >> 绘制心电图

IOS 绘制心电图这两天公司做一个医疗的项目,其中一个需求是接受传感器的病人心跳数据,将之在UI上面绘制成心电图. 在网上看了很多demo,废话不多说直接切入.(漏洞百出,欢迎批评指正) 因为除了逻辑其实很简单,代码就没有放到githup上面。点击打开链接 这是demo的下载地址一.Core GraphicsCore Graphics 是一个基于c的

2017-08-16 11:53:16 2051 1

转载 IOS-App国际化配置

一、通常我们设置App的名称是在工程中的Info.plist文件中修改如下图选项:这样,我们运行就可以看到App的名字就改变了,但是这种方法,如果改变了系统语言,App的名字不会随着系统语言的改变而改变,下面我们就来看下如何让App国际化。二、如何让App的名字国际化 ?第一:我们需要在Info.plist中添加一对Key、Type和Valuekey:Applicati

2017-08-16 10:21:18 536

原创 iOS实现倒计时显示 时 分 秒

1.创建一个类继承自UILabel.(用来显示 时 分 秒).h文件//// TimeLable.h// timer//// Created by limin on 17/8/15.// Copyright © 2017年 none. All rights reserved.//#import @interface TimeLable : UILabel@

2017-08-15 17:12:46 3712

转载 iOS开发 内购流程

一.向appStore提交资料第一步第二步第三步操作完第三步然后记得保存第四步第五步先点击Contact Info 的Set Up第六步第七步都填写完记得保存,然后回到上一个页面第八步第九步第十步第十一步第十二步进行十二步的时候可能

2017-08-14 15:57:10 2133

原创 iOS开发--3D Touch的基本使用

1.桌面快捷菜单项效果如图:桌面快捷菜单点击之后的效果如图:点击桌面快捷菜单的效果接下来看下具体实现:1).在-application:didFinishLaunchingWithOptions:方法中用-setShortcutItems:方法来添加快捷菜单项。- (BOOL)application:(UIApplicatio

2017-08-13 18:16:31 391

原创 http协议几种数据传输方式

说说http协议的一些特点:1)无状态http协议是一种自身不对请求和响应之间的通信状态进行保存的协议,即无状态协议。这种设置的好处是:更快的处理更多的请求事务,确保协议的可伸缩性不过随着web的不断发展,有时候,需要将这种状态进行保持,随即,就引入了cookie技术,cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态。有关cook

2017-08-11 09:46:04 6953

原创 iOS实现在webview页面内点击链接,跳转指定App

思路分析:iOS内应用之间跳转都会用到 URL Schemes这个东西,简单的讲,这个就是用来定义app身份的一个id识别,这里定义了之后,手机运行过这个app之后,会在系统内部记录下这里的身份识别,下次,其他app想访问该app,只要请求那里定义的URL Schemes,手机自己就能找到这个app,从而实现跳转。。。 好了,代码测试如下:1、在项目里,Info最下

2017-08-07 14:48:34 4129

原创 appStore审核被拒的原因

一般情况下,appStore审核被拒时,苹果都会在邮件中告知原因,根据具体的原因采取具体的措施。但是通过和CP们交流,ASO100专栏作者小七对1月以及2月初应用被拒的原因以及每种原因在所有原因中的比重(根据统计结果中被拒原因的条数)进行了汇总,总结出审核被拒原因的Top10,结果如下所示:1. 标题中出现了关键词或相似词语堆砌现象(约占29.4%)2. 因ipv6网络

2017-08-03 16:01:40 1219

原创 iOS App审核 因IPv6遭到拒绝

问题描述:在iTunes Connect 中苹果发来回复:We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 10.3.1 on Wi-Fi connected to an IPv6 network.解决:1.让服务器支持IPv6协议2.或模拟IPv6环境

2017-08-03 15:58:04 440

原创 iOS中计算文件大小两种方法

场景需求:给一个文件,或者文件夹,计算出这个文件或者文件夹的大小(字符串);分析:文件的操作需要用到文件管理者NSFileManager这个类来操作无论是文件还是文件夹都必须找到它的全路径(而且是绝对路径),这样才能根据路径找到它如果是文件夹,需要层层对里面的文件夹进行遍历为了方便项目中其他地方也用到计算文件大小,应该抽取成分类;不建议新增一个类,这样会增加内存,直接给NSString扩充

2017-08-01 19:54:52 1526

原创 iOS动画-来回切换多张图片产生动态效果

方法1:使用定时器按时切换动画//定义结构体,方块大小 CGRect frame=CGRectMake(13.5, 11.5, 22, 22); //初始化图像视图对象,大小是frame _musicImageView = [[UIImageView alloc] initWithFrame:frame]; _musicImage

2017-07-27 19:58:44 3865

原创 UICollectionView创建头部headerview

使用自带的头部视图#import "HomeViewController.h" #import "ConstomCell.h" static NSString *headerViewIdentifier = @"hederview"; @interface HomeViewController () @property (nonatomic,strong

2017-07-06 15:06:33 986

音乐播放器

内置音乐播放器、歌词滚动、上一首歌曲、下一首歌曲、音量调节、摇一摇换歌曲等功能。

2015-09-08

音频、视频合成

ios中音频、视频合成,取消原视频音轨,和新的音轨合成一段视频。

2015-09-07

不会说话的汤姆猫

NSString *format=dict[@"imageFormat"]; NSInteger frames=[dict[@"frames"] integerValue]; NSMutableArray * imageList=[NSMutableArray array]; for (NSInteger i=0; i<frames; i++) { NSString *fileName=[NSString stringWithFormat:format,i]; UIImage* image=[UIImage imageNamed:fileName]; [imageList addObject:image]; } [_tomcatImageView setAnimationImages:imageList]; [_tomcatImageView setAnimationDuration:frames/10.0]; [_tomcatImageView setAnimationRepeatCount:1]; [_tomcatImageView startAnimating]; // NSArray *soundFiles=dict[@"soundFiles"]; if (soundFiles.count>0) { NSInteger seed=arc4random() %soundFiles.count; [self loadSoundWithFileName:soundFiles[seed]]; } }

2015-09-07

空空如也

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

TA关注的人

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