发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116953.html原文链接:https://javaforall.cn
+ (NSMutableArray *)addHttpArr:(NSString *)text
本文首发于我的个人博客:『不羁阁』 https://bujige.net 文章链接:https://bujige.net/blog/iOS-Foundation-Array.html 本文对Foundation框架中的数组类(NSArray、MutableNSArray)的使用做一个详细的总结。 1. NSArray 1. NSArray介绍 NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中虽然也有数组,但在开发的过程中存在一些弊端 int arr
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。分治法就是将一个大问题分解成小问题然后递归求解,然后再将小问题的结果合并,最终得到问题的解。
想项目有可能会遇到按照一定条件对某一个数组进行筛选。 直接遍历数组,取符合条件的对象放到一个新数组效率可能不高。
排序算法在各种语言中都有已经封装好的API可使用了。但是排序算法内部怎么实现的?有哪些常用的排序算法我们还是需要了解一下的。
1、数组翻转 NSMutableArray *temp = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",nil]; NSArray *reverseArr = [[temp reverseObjectEnumerator] allObjects]; 2.数组升序 NSMutableArray *temp = [NSMutableArray arrayWithObjects:@"4",@"2",@"3",@"1",@"5",@"
归档(archive)就是将数据整理到外部文件(xml,plist,txt 等)!
求解: strArr的反序数组strRevArr,即元素顺序分别为e,d,c,b,a。
分享一些项目中常用的方法,可以保存起来,作为自己的工具集哦。 1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes { CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error]; if (error) { #
快速排序是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
最近项目中要加入地址选择,还是要四级的包含街道的,网上查到一大堆都是没用的,有的也只是一大堆的JOSN文件放哪里,好尴尬,于是动手整理了一份四级的Plist文件,分享出来供需要的人使用。 https://github.com/JLLJHD/AreaPlistDemo 获取plist文件数据 - (NSArray *)rootArray { if (!_rootArray) { NSString *path = [[NSBundle mainBundle] pathForResourc
现在的iOS在跟服务器进行交互式,采取的常用数据格式是XML和JSON,而今天就探讨一个JSON解析框架 —— MJExtension。
先回忆一下,大学期间学到的排序算法你还记得多少?? 那先充电一下常用排序算法总结,当然,google搜索"排序算法"会非常多,这个链接只是随意看到查看的,仅供参考。 二叉树 快速排序 当然,作为io
下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习。 在Objective-C中的集合类中主要包括不可变的数组--NSArray, 可变的数组--NSMutableArray, 不可变的字典--NSDictionary, 可变的字典--NSMutableDictionary, 不可变的集合--NSSet,可变的集合--NSMutableSet。
利用数组比较元素的方法,如果数组中没有出现该元素则添加,如果该元素出现了则删除该元素
/** * 多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值 * * @param axisType 轴线方向 * @param fixedSpacing 间隔大小 * @param leadSpacing 头部间隔 * @param tailSpacing 尾部间隔 */ - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType wit
C语言随机函数rand() random() drand48() OC随机函数arc4random() arc4random_uniform() rand() // 生成m~n之间的随机整数 -(int)randFrom:(int)m to:(int)n{ static BOOL isSranded = NO; if (!isSranded) { isSranded = YES; srand((int)time(0)); } return m
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。`
很多人都玩过斗地主,也有很多人没玩过,或者像我一样是个菜B,不太懂怎么玩,好,没关系,这篇文章不是教你斗地主,是要根据斗地主这个游戏做些技术分享: 目的:随机发牌,发的牌按牌大小排序(花色与数字)
已经找工作很久了,简历就像是石沉大海,一点回音都没有,今天下午收到一个回复,内容如下: 您好!麻烦您用任何熟悉的编程语言实现function versionCompare(v1, v2)(版本号比较)函数及测试用例。对任意软件的版本号进行大小比较,输入参数为两个版本号(格式情况请自行考虑),目标是做成库给外部开发者用。不得使用现成的版本比较函数。重点考察各类情况处理。写好后截图给我们就行。
//实现的功能是 从后台拿到城市的省份以及名称,然后保存在本地的沙盒中 在使用的时候再拿出来用。 步骤1 //向后台请求数据 //忽略缓存 [RequestTools postJSONWithUrl:G.YB_GetZoneList parameters:@{} success:^(id responseObject) { NSError *error = nil; NSDictionary *dic = [NSJSONSerialization JSONObjec
在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能。这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的iOS系统,那么这些特性有什么样的用处呢,作为开发者,我保证你一定会爱上他们,如果你可以将这些新特性都应用于你的开发,你的开发效率和代码质量,相比之前,会有一个很大的提升。
在iOS开发中,UIImageView类专门来负责图片数据的渲染,并且UIImageView也有帧动画的方法来播放一组图片,但是对于gif类型的数据,UIImageView中并没有现成的接口提供给开发者使用,在iOS中一般可以通过两种方式来播放gif动态图,一种方式是通过ImageIO框架中的方法将gif文件中的数据进行解析,再使用coreAnimation核心动画来播放gif动画,另一种方式计较简单,可以直接通过webView来渲染gif图。
冒泡排序是通过比较两个相邻元素的大小实现排序,如果前一个元素大于后一个元素,就交换这两个元素。这样就会让每一趟冒泡都能找到最大一个元素并放到最后。
TableView多级列表的实现效果预览图 需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设置最大的层级数,支持多选、单选、取消选择。 示例Demo:MultilevelList 思路 由需求和示意图可知,这些数据元素之间存在着一对多关系,很符合 数据结构与算法 -- 树形结构 的特征。那么,我们就用树形结构中的结点(Node)来作为存储和关联数据的模型(NodeModel)。 //每个结点信息,采用的是树状结构模型 关于树状结构不了解的可以看看
首先建立一个cell的类,用于存放cell中的内容 ,继承自uitableviewcell;
原理: 通过copy方法可以创建可变对象或不可变对象的不可变副本,对于不可变副本,其对象的值不可以改变。 通过mutableCopy方法可以创建可变对象或不可变对象的可变副本,对于可变副本其对象是可变的。 复制分为浅复制和深复制两种:浅复制只是复制对象的引用,并没有复制对象的具体内容。深复制则创建了要复制对象的具体内容,并返回对象副本的引用。 对于复制Foundation中的对象,默认并不是深复制,例如copy NSMutableArray对象是浅复制,只是对其引用进行复制;而copy N
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/47043073
看了几篇文章,因为文章很新手向,所以内容很繁琐。故整理一下重点,写了测试程序去了解几个知识点,不讨论基本概念。
在开发的时候,使用copy的频率还是挺高的,我们只要copy定义的属性的设置方法并不保留新值,只是其拷贝一份值,为什么NSString、NSArray、NSDictionary属性的定义说那个copy,如果使用strong关键字有什么问题?所以这节就讲一下以及什么使用深拷贝和浅拷贝的问题。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/48896373
在这里可变数组使用copy来修饰了,然后在使用的时候addObject 报错[__NSArray0 addObject:]: unrecognized selector sent to instance 0x7fff8062d570
希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。
有时候在调用多个模块时,会对同一个API进行多次请求,但因为内容都是一样的,所以最好就是加上锁,防止重复请求造成网络资源浪费
写了个拼图游戏,探讨一下相关的AI算法。拼图游戏的复原问题也叫做N数码问题。 拼图游戏 N数码问题 广度优先搜索 双向广度优先搜索 A*搜索 游戏设定 实现一个拼图游戏,使它具备以下功能: 1、自由选取喜欢的图片来游戏 2、自由选定空格位置 3、空格邻近的方块可移动,其它方块不允许移动 4、能识别图片是否复原完成,游戏胜利时给出反馈 5、一键洗牌,打乱图片方块 6、支持重新开始游戏 7、难度分级:高、中、低 8、具备人工智能,自动完成拼图复原 9、实现几种人工智能算法:广度优先搜索、双向广度优先搜索、A*搜
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 而堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。
项目中双层for循环时,想当然的认为内部局部指针变量的变化会影响外面数组中模型的地址。结果调试后发现,是不对的。
对于这需求要做到百度搜索我呸,谷歌搜索的权重排序,我接到这个需求是拒绝的。后来经过和小伙伴的研究,觉得这个按照权重排序是可以实现的。
全国行政区划检索功能, 由于高德和百度也没有提供一个比较完美的解决方案, 因此使用了腾讯地图iOS SDK内部封装的Web接口来实现. 行政区划共分为三个等级, 省级/市级/区级, 对于北京市和天津市这样的城市, 通常直接认为是省级, 并直接以同样的内容来填充市级. 但是SDK内部并没有提供这样的填充, 因此需要自行再省级里面将其复制到市级。
class_copyPropertyList 看到名字可以看出来他是来获取属性的 只能获取到 @property 声明的属性 class_copyIvarList 用来获取所有的变量的 获取所有的变量,当然包括因 @property 修饰而自动产生的变量 _name 总结 class_copyPropertyList 只能获取到 @property 声明的属性 class_copyIvarList 用来获取所有的变量的 但是以上两个方法都只能获取到当前类的属性和变量(也就是说获取不到父类的属性和变量) 验证
今天遇到一个问题,之前在代码中写了一个数组的加载方式,现在我想在setter方法中写一些逻辑结果报错了。比如申明一个可变数组,写懒加载方法。
作为一名前线的码农不时地看一下算法和数据结构还是很有必要的,虽然《算法导论》这本书很难啃,但还是有必要啃一下的。算法这东西和某种编程语言关系不大,在大学的课堂上书上一般是用伪代码来描述算法的,而用C语言去实现。算法更多的是一种思想,一种解决问题的方法,多看看算法还是很有必要的,它可以开阔的你的思路,让你在编程时思维更为活跃。 当然了,本人在算法方面水平有限,这不正在努力的学习不是,接下来就按算法导论上描述的插入排序和归并排序使用Objective-C语言实现一下,当然用什么语言是次要的,关键是理解算
made in 小蠢驴的配图 对于现在大部分iOS开发者来说,无论是在职的,打算跳槽的,或者还在找工作的,亦或还在培训中,将来可能面临找工作的(现在应该比较少了),面试都无疑是一座摆在面前无法逾越的大山了吧,因为确实很多面试问题,可能我们只是偶尔遇到,或者仅仅知道怎么用,但是却没有进行探究,接下来,我来讲一下,面试过程中几乎必问的 @property 关键字问题~ 来自sunnyxx大神的面试题 对于数组,应该算是我们开发中最常见也是最常用的类型之一了,sunnyxx的这个题目,也确实可以考察
每当有一个cell从屏幕消失,就将其放到缓存池中,如果有新的cell出现,就去缓存池中取,如果缓存池中没有,再创建。
建立一个单例: DataBaseHandle.h #import <Foundation/Foundation.h> @class PersonModel; @class FMDatabase; @interface DataBaseHandle : NSObject @property(nonatomic,retain)FMDatabase *db; //创建单例的的接口 (DataBaseHandle *)shareDateBaseHandle; //创建一个Person表格 (void)creatP
很多时候需要对接口返回的数据进行数据保存,以便下次使用。本地json文件的应用场景:
好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例。在Demo中对所需的组件进行的简单封装,在封装的组件中使用的是纯代码的形式,如果想要在项目中进行使用,稍微进行修改即可。 废话少说,先介绍一下功能点,下图是整个Demo的功能点,最上面左边的TabBarButtonItem是用来减少条目的,比如下图有三个按钮,点击减号会减少一个条目。右边的为增加一个条目。点击相应的按钮是切换到对应的表视图上,下方红色的是滑动的指示器,同时支持手势滑动。运行具体效果
很多算法或者面试题中都会涉及到:动态规划 的问题。 动态规划从数学的角度来看,就是存在一个有
领取专属 10元无门槛券
手把手带您无忧上云