自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Instruments性能分析之os_signpost的使用

一、基本概念os_signpost相关的API是苹果在发布iOS12时推出的,那么os_signpost到底能干什么呢?我们可以看一下官方文档给出的概述:* @header os_signpost* The os_signpost APIs let clients add lightweight instrumentation to* code for collection and visualization by performance analysis tooling.* C...

2021-02-04 15:38:28 1844 1

原创 iOS开发之冒泡排序的详解

关于冒泡排序的实现:原理:比较相邻元素,将较大的值移动到右边,遇到相同值的元素不进行移动思路:依次比较相邻的数,较小的值放在前面,较大的值放在后面假如n个数字:第一次比较:第一个和第二个比较,最大的放在右边,然后第二个和第三个比较...第n-1个和第n个比较,最大值放在最右边,这样得出数组下标为n-1的值为最大值。第二次比较:第一个和第二个比较,最大的放在右边,然后第二个和第三个比较...第n-2个和第n-1个比较,最大值放在最右边,这样得出数组下标为n-2的值为最大值。...

2020-07-11 10:08:45 547

原创 iOS 侧滑返回上一层控制器的解决方案

前言:最近在做一个智能家居的项目,刚开始的时候项目里面没有集成iOS系统的侧滑返回上一界面的功能。前几天公司有人反馈项目添加侧滑返回体验会更好一点,于是我就在网上搜集了一些材料,并针对集成过程中出现的一些问题进行记录,希望对大家有所帮助。一、登录界面右滑卡顿问题由于登录界面是首界面(APP的一级压面),无父级控制器,侧滑的话无处返回,而造成页面卡死的原因正是处于此处。所以需要在一级页面分别...

2019-03-25 10:55:03 1540

原创 iOS APP贴牌必备

注意注意注意:重命名项目时,记得先备份好一份APP贴牌:简单的说就是复制一个项目,更换UI或者一些接口就可以了,下面我将介绍一下最开始的项目配置:1:在xcode修改项目名(点击按return键输入项目名字),点击Rename第二步(在项目文件包里)修改项目文件夹名继续修改文件里的文件夹名字(如下图三处地方)第三部修改项目文件名(双击选择显示包内容)...

2019-02-18 09:30:11 1139 4

原创 iOS UIAlertController中间和底部弹出框

直接上代码:一、底部弹出框:                 UIAlertController *actionSheetController = [UIAlertController alertControllerWithTitle:nil message:@"确认修改设备名称?" preferredStyle:UIAlertControllerStyleActionSheet]; ...

2019-01-22 16:13:34 3027

原创 Xcode上传低版本应用到AppStore报ERROR ITMS-90725的错误

最近用xcode 8.3 上传到appstore 的时候,报了一个错误:ERROR ITMS-90725:"SDK Version Issue. This app was built with the iOS '10.0' SDK...网上搜了一些资料,并实践,解决办法如下:下载最新的Xcode,显示报内容 通过以下路径去找ios '1x.0'的sdkContents/Develo...

2019-01-03 15:56:41 5348

原创 关于UITableView左滑删除单元格

关于左滑删除这块,相信不少朋友都遇到过。UITableView自定一个左滑的按钮可以自定义,但是越来越多的需求左滑时要实现多个功能。关于功能的实现,需要注意的是,所有关于tableview的操作如果影响到了页面cell的显示,通通遵循一个原则,就是先改数据,后变UI。另外关于置顶,不能单纯交换需要置顶项和第一项的数据;而是将需要置顶项插入到最前面。然后弹窗输入信息修改人物名字这块,简单示范了一...

2018-11-28 09:35:10 1070

转载 苹果电脑显示隐藏文件

打开终端,输入:defaults write com.apple.finder AppleShowAllFiles -bool true搜索       此命令显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false      此命令关闭显示隐藏文件命令运行之后需要重新加载Finder:快捷键option+co...

2018-10-19 11:26:17 1885

转载 iOS版本更新时Code signing is required for product type 'Application' in SDK 'iOS xx.x'的问题

archive项目时遇到了Code signing is required for product type 'Application' in SDK 'iOS xx.x'的问题,解决方法如下: 解决方式,如图: 将code signing identity设置为iOS Developer然后clean,重启xcode(这步很关键)再设置自动签名,如图,即可运行程序  ...

2018-09-13 15:36:42 1324

原创 iOSLabel文字自适应高度自适应

第一步:创建UILabel对象,并设置一些基本设置        UILabel *label = [[UILabel alloc] init];        label.text = @"8月29日,在雅加达亚运会电子竞技表演赛英雄联盟项目决赛中,中国团队3-1击败韩国队获得冠军,这场来之不易的胜利占据了微博热搜,也刷屏了朋友圈!";        label.textColor ...

2018-08-30 11:04:22 3481

转载 iOS Block的深入理解

前言Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这个新功能“Blocks”。从那开始,Block就出现在iOS和Mac系统各个API中,并被大家广泛使用。一句话来形容Blocks,带有自动变量(局部变量)的匿名函数。Block在OC中的实现如下:struct Block_layout { void *isa;...

2018-08-27 17:53:59 688

原创 iOS获取当前正在连接的WIFI名

公司之前有个需求,关于获取当前连接WiFi名称。此方法需要使用真机来测试才行。一、首先需要引入系统#import<SystemConfiguration/CaptiveNetwork.h>二、下面是方法的封装- (NSString *)seekWifi{    id info = nil;    //获取所有的支持接口    NSArray *ifs = (__...

2018-08-23 17:40:13 834

转载 App定位和地图的那些坑

开发App时会遇到各种坑,本文分享我们在iOS/Android系统中定位和地图中遇到的坑,以及携程App的解决方案。定位定位即获取用户当前经纬度,iOS平台都是通过系统SDK接口获取的,因此所有App获取定位及精度的能力是相同的,即使Google Maps、百度地图、高德地图这种专业地图App也是如此;Android平台由于Google Service被阉割,国内App通常是通过高

2016-12-20 13:49:16 2130

转载 浅谈IQKeyboardManager第三方库的使用

IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具。无需输入任何代码,不需要额外的设置。使用IQKeyboardManager的你只需要将源文件添加到项目。这里附上下载链接:https://github.com/hackiftekhar/IQKeyboardManagerIQKeyboardManager支持Objec

2016-12-08 16:33:15 312

转载 OSChina.git详解

开源中国相对于github而言优势如下: 1、服务器在国内,访问速度快 2、可以免费创建私有项目,无需付费原文地址:http://blog.csdn.net/magiczyj/article/details/51850696 网站地址:http://www.oschina.netgit使用1、创建ssh key打开终端 此后在

2016-09-26 16:34:13 872

转载 iOS10适配教程

iOS开发 适配iOS102016年9月7日,苹果发布iOS 10。2016年9月14日,全新的操作系统iOS 10将正式上线。作为开发者,如何适配iOS10呢?1.Notification(通知)自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserNotif

2016-09-26 14:07:32 2899

原创 mac电脑显示隐藏文件

打开终端,输入:defaults write com.apple.finder AppleShowAllFiles -bool true  此命令显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false  此命令关闭显示隐藏文件命令运行之后需要重新加载Finder:快捷键option+co

2016-08-17 14:26:37 382

原创 iOS瀑布流布局实现

最近开发中遇到了关于瀑布流布局问题,所有就整理了一个瀑布流布局类,使用时只需要调整列数、行间距、列间距、上下左右边缘就可以做出各种需求的瀑布流布局,下面直接上代码:自定义瀑布流需要继承UICollectionViewLayout布局类.h文件#import @interface ZYYWaterLayout :UICollectionView

2016-08-14 12:04:04 1285

转载 MJExtension使用指导

原文链接:IOS 字典模型互转框架 MJExtensionMJExtension能做什么?MJExtension是一套字典和模型之间互相转换的超轻量级框架MJExtension能完成的功能 字典(JSON) --> 模型(Model) 模型(Model) --> 字典(JSON) 字典数组(JSON Array) --> 模型数组(Model Array) 模型数

2016-08-13 10:32:59 1434

原创 iOS 开发之KVO的底层实现

KVO就是Key-Value Observing,它提供一种机制,当指定的对象属性被修改后,对象就会接受到通知。简单的说就是每次指定的被观察对象的属性被修改后,KVO就会自动通知相应的观察者了。关于KVO的使用网上有好多,这里就不再过多累述了。前些时面试的时候有面试题是关于KVO底层实现的,这里就来记录一下。KVO底层实现大致分为以下几步:一、修改对象的isa指针的指向    Pe

2016-08-07 19:13:10 489 5

原创 iOS判断一个日期是否为昨日、今日、今年

1、需要创建一个NSDate类的category,调用的时候需要传进来一个NSDate类型的时间即可返回BOOL值来判断改时间是不是今日等。2、直接上干货创建完分类后,在.h文件中加入下面的代码:#import @interface NSDate (Extension)/** *  是否为今天 */- (BOOL)isToday;/** *  是

2016-08-04 14:52:06 7452

原创 Git SSH Key 生成步骤

git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以要使用远程的git则需要ssh的配置。github的ssh配置如下:一 、设置git的user name和email:$ git config --global user.name "amazingZy"$ git config --global user.email "你的邮箱"二、生成SSH密钥过程:

2016-07-24 11:08:36 3125

转载 iOS开发:正确使用const,static,extern

本篇主要介绍在开发中怎么使用const,static,extern3个关键字,如果喜欢我的文章,可以关注我微博:吖了个峥,也可以来小码哥,了解下我们的iOS培训课程。后续还会更新更多内容。。。一、const与宏的区别(面试题):const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译之前处理),co

2016-07-18 18:00:10 442

原创 关于The dependency `AFNetworking` is not used in any concrete target的问题

由于coocapods更新,最近用到cocoapods安装第三方库的时候遇到了很多的问题,其中有一个The dependency `第三方库名称` is not used in any concrete target,它的意思是这个库不属于任何target。上网上搜索,有好多人遇到了这个问题,所以就记录一下:解决办法:将Podfile里面的内容改为下面的内容,保存 再pod insta

2016-07-17 20:30:09 3143

转载 iOS 通过定位获取常驻后台(重要是省电)

我们知道ios 的应用,大部分都是进入后台,就不会执行任何操作,但是 ,很多时候我们希望程序进入后台,也能执行一些检测操作,比如说,应用进入后台,我们仍然可以实时去获取当前的位置信息。下面我们来了解下,ios 获取后台时间的几种方式根据苹果文档中关于后台执行的描述,任何app都有3分钟左右的后台任务执行时间。 3分钟后,app会被iOS强行挂起。但是,有几类app允许有“无限的”后台运行时

2016-07-14 17:18:09 8776

转载 iOS安全系列之一:HTTPS

如何打造一个安全的App?这是每一个移动开发者必须面对的问题。在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多,这就导致了许多iOS开发人员对于安全性方面没有太多的深入,但对于一个合格的软件开发者来说,安全知识是必备知识之一。对于未越狱的iOS设备来说,由于强大的沙箱和授权机制,以及Apple自己掌控

2016-07-08 16:43:31 457

转载 SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1) 窃听风险(eavesdropping):第三方可以获知通信内容。

2016-07-08 16:37:21 368

原创 获取当前系统时间戳的方法

1、第一种方式    NSDate* dat = [NSDatedateWithTimeIntervalSinceNow:0];    NSTimeInterval a=[dattimeIntervalSince1970];    NSString *timeString = [NSStringstringWithFormat:@"%.0f", a];    DLog(

2016-07-07 11:40:51 1858

转载 iOS8区域定位CLVisit的了解

在很多应用,使用位置定位来判断用户是不是在某个期望的地理位置。概念上说,你会将这个行为想成名词“现场”或者是“访问”而不是原生的GPS定位。略一段。。在iOS8中,大苹果为我们解决此类问题提供了CLVisit,一个新的后台定位监测类型。一个但一个的CLVisit表示用户花了一段时间在一个单一的地方,包含了同一地理坐标以及起始/结束时间戳。理论上来说,使用访问监控不会比其他的后台定位做更

2016-07-06 15:53:13 1081

转载 iOS开发过程中使用一些常用的宏

iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性;将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。[cpp] view plain copy//  //  MacroDefinition.h  //  MacroDefinition

2016-07-04 10:38:12 397

原创 xcode快速创建代码模版

创建代码模版可以提高编程效率,本文以懒加载为例:并将代码拖到右侧代码快捷键区域中:这时,最下面的一个代码快捷方式就是我们刚拖进去的代码 ,双击打开后点击Edit,如图所示:点击Edit后会出现下面的的界面:Title:指的是本代码模版在模版库的标示。Summary:为本代码模版的简单介绍。Completion Shortcut:这个参数很重要,当你敲代码

2016-07-02 22:48:09 858

原创 解决每次运行Xcode都需要输入密码问题

刚买的电脑,安装xcode后,每次运行模拟器都会出现让输入管理员密码的问题,上网搜了很多解决办法,最后整理了一下:1、打开终端2、输入DevToolsSecurity --status上面的指令时查看开发者状态的,如果是Developer mode is currently disabled.那就对了3、输入DevToolsSecurity --enable此时会弹出密码输

2016-07-02 09:17:09 5783 2

原创 下拉刷新的逻辑要点

下拉刷新:清空本地所有数据,加载第一页。上拉加载:使用当前页码加载数据。下拉刷新和上拉加载加载网络数据成功后的共同逻辑:加载成功后通过count和获取到的数据总条数对比,如果还有数据,那么页码变量要加一。

2016-06-30 13:47:28 1201

转载 MJRefresh详解

下拉刷新01-默认self.tableView.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ // 进入刷新状态后会自动调用这个block}];或// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法)self.tableView.heade

2016-06-30 10:25:18 552

原创 storyBoard编程通过performSegueWithIdentifier传参数

在跳转  控制器的 类里面写此方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{        if ([segue.identifierisEqualToString:@“toVc"]) {////这里toVc是拉的那条线的标识符                TheViewCon

2016-06-29 09:45:24 4362

转载 你真的了解iOS代理设计模式吗?

在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数。这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识。我会通过这些方面的知识,带大家真正领略代理的奥妙。写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去。本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢!iOS中消息传递方式在iOS

2016-06-28 16:17:36 650

转载 iOS将UIImage设置为圆角

UIImage+wiRoundedRectImage.h#import @interface UIImage (wiRoundedRectImage)+ (id)createRoundedRectImage:(UIImage*)image size:(CGSize)size radius:(NSInteger)r;@end UIImage+wiRounded

2016-06-28 15:51:11 2887

转载 UIImage图片处理(更改颜色,修改透明度,缩小,合并图片)

//遍历图片像素,更改图片颜色void ProviderReleaseData (void *info, const void *data, size_t size){    free((void*)data);}- (UIImage*) imageBlackToTransparent:(UIImage*) image{    /

2016-06-27 23:07:18 2443

原创 单例宏的书写

单例模式是iOS开发中常见的设计模式,怎么样快速创建单例宏呢?方法如下://-------------------------------------------------------------//@name 单例宏//-------------------------------------------------------------#undef H_SINGLETO

2016-06-27 14:20:31 409

转载 IOS学习之蓝牙4.0 BLE

转载请注明出处http://blog.csdn.net/pony_maggie/article/details/26740237作者:小马IOS学习也一段时间了,该上点干货了。前段时间研究了一下IOS蓝牙通讯相关的东西,把研究的一个成果给大家分享一下。 一 项目背景简单介绍一下做的东西,设备是一个金融刷卡器,通过蓝牙与ip

2016-06-27 12:50:57 599

空空如也

空空如也

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

TA关注的人

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