首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Objective-CNSArray解读

Objective-CNSArray解读     NSArray数组类是Objective-C语言中常用也是重要一个类,除了开发中常用到一些基础功能,NSArray及其相关类还封装了许多更加强大功能...NSArray属性与方法: //获取数组中元素个数 @property (readonly) NSUInteger count; //通过下标获数组元素 - (ObjectType)objectAtIndex...; //像数组追加一个元素 这个方法会返回一个新数组 - (NSArray *)arrayByAddingObject:(ObjectType)anObject; //像数组追加一组元素.../* 这个属性可以获取一个已经排序数组排序规则 在使用 - (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(ObjectType...:(ObjectType __unsafe_unretained [])objects; NSMutableArray属性与方法: //向数组追加一个元素 - (void)addObject:(ObjectType

1.2K20

简谈常用算法

算法概念 排序算法稳定性:假定在待排序记录序列,存在多个具有相同关键字记录,若经过排序,这些记录相对次序保持不变,即在原序列,ri=rj,且ri在rj之前,而在排序序列,ri仍在rj...:(NSArray *)array{ NSMutableArray *dataArray = [NSMutableArray arrayWithArray:array]; NSInteger...R[k],将它与无序区第1个记录R[1]交换,使R[1..1]R[2..n]分别变为记录个数增加1个新有序区记录个数减少1个新无序区; ... 4、第i趟排序:第i趟排序开始时,当前有序区无序区分别为...该趟排序从当前无序区中选出关键字最小记录 R[k],将它与无序区第1个记录R交换,使R[1..i]R分别变为记录个数增加1个新有序区记录个数减少1个新无序区。...,直到i=j; (3,4步,没找到符合条件值,即3A[j]不小于key,4A[i]不大于key时候改变j、i值,使得j=j-1,i=i+1,直至找到为止。

50720

Objective-C集合类

下面详细介绍Objective-C集合类以及每个集合类用法,学过其他面向对象编程语言小伙伴们看到OC集合类会有种莫名亲切感,理解起来问题不大,可以类比Java集合类去学习...在Objective-C集合类主要包括不可变数组--NSArray,  可变数组--NSMutableArray,   不可变字典--NSDictionary,    可变字典--NSMutableDictionary...NSArray也是OC一个对象,使用NSArray也需要进行实例化,前面的博客在类初始化中提到了便利初始化函数便利构造器,在NSArray也少不了这两样东西我们可以通过NSArray便利初始化函数或者便利构造器进行...NSArray实例化初始化工作。         ...NSMutableArrayNSArray子类,是对NSArray一个扩充。

1.1K70

简谈归并排序

归并排序算法是一种思想挺有意思排序算法。具体内容还是从算法实现思想、时间复杂度、算法稳定性以及算法实现四个方面介绍。...1 算法实现思想 1、第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后序列; 2、第二步:设定两个指针,最初位置分别为两个已经排序序列起始位置; 3、第三步:比较两个指针所指向元素...,选择相对小元素放入到合并空间,并移动指针到下一位置; 4、重复步骤3直到某一指针超出序列尾; 5、将另一序列剩下所有元素直接复制到合并序列尾。...midIndex + 1, endIndex); Merge(sourceArr, tempArr, startIndex, midIndex, endIndex); } } Objective-C...*sourceMutableArray = [NSMutableArray arrayWithArray:sourceArray]; NSMutableArray *tempMutableArray

61160

iOSNSSet NSArray区别

NSSet: ●NSSet , NSMutableSet是无序集合,在内存存储方式是不连续 ●通过anyObject来访问单个元素 ●遍历NSSet每个元素。...通过forin循环来遍历 好处:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个算法hash 。...应用场景: 比如重用Cell时候,从缓存池中随便获取一个就可以了,无需按照指定顺序来获取 当需要把数据存放到一个集合,然后判断集合是否有某个对象时候 NSArrayNSArray是有序集合...,在内存存储位置是连续 好处:有序访问 应用场景:在绝大多数需要依赖顺序情况下(比如tableView数据源集合,在实际操作要根据下标来获取对象) 通过下标来访问

71210

简谈选择排序

1 算法实现思想 1、n个记录文件直接选择排序可经过n-1趟直接选择排序得到有序结果; 2、初始状态:无序区为R[1..n],有序区为空; 3、第1趟排序: 在无序区R[1..n]中选出关键字最小记录...R[k],将它与无序区第1个记录R[1]交换,使R[1..1]R[2..n]分别变为记录个数增加1个新有序区记录个数减少1个新无序区; 4、第i趟排序:第i趟排序开始时,当前有序区无序区分别为...该趟排序从当前无序区中选出关键字最小记录 R[k],将它与无序区第1个记录R交换,使R[1..i]R分别变为记录个数增加1个新有序区记录个数减少1个新无序区。...2 时间复杂度:min = O(n),max = O(n^2) 3 算法稳定性:不稳定 不稳定原因举例:5 5 3 变为 3 5 5,第一趟排序,第一个5会3位置互换,从而破坏该算法稳定性。...语言实现: - (NSArray *)selectAlgorithm:(NSArray *)array{ NSMutableArray *tempArray = [NSMutableArray

56350

oc深坑測试题及其答案

C、.pl D、.c 19、 下列说法错误是: 答案:(C) A、Objective-C不用”函数调用”,而用互相传递讯息....B、Objective-C一个完整类分为interfaceimplementation两块 C、Objective-C对象使用new分配内存,用delete释放 D、Objective-C协议分为非正式协议和正式协议...D、崩溃信息 21、 OC布尔(BOOL)类型变量值仅仅有: 答案:(B) A、1/0 B、YES/NO C、true/false D、1/-1 22、 Objective-C...方括号“[]”作用,下列说法错误是: 答案:(D) A、用于通知某个对象该做什么 B、方括号内第一项是对象,其余部分是你须要对象运行操作 C、在Objective-C通知对象运行某种操作...aBlock)(NSString * str,NSString *str2) 63、 Objective-C 语言中类实例变量假设仅仅能够被本类其子类訪问,须要下列哪个修饰符: 答案:(C

40230

OC知识--Foundation框架详尽总结之『数组类』

框架数组类(NSArray、MutableNSArray)使用做一个详细总结。...NSArray介绍 NSArray是OC数组类,开发建议尽量使用NSArray替代C语言中数组 C语言中虽然也有数组,但在开发过程存在一些弊端 int array[4] = {10, 89...NSArray快速遍历 NSArray *arr = @[@"abc", @"edf", @"hij"]; // OC数组可以使用OC增强for循环来遍历 // 逐个取出arr元素,将取出元素赋值给...block // 每次调用block都会将当前取出元素元素对应索引传递给我们 // obj就是当前取出元素, idx就是当前元素对应索引 [arr enumerateObjectsUsingBlock...NSArray排序 1.NSArray排序 Foundation自带类排序 使用compare方法对数组元素进行排序, 那么数组元素必须是Foundation框架对象, 也就是说不能是自定义对象

65940

iOS开发之__NSArray0、__NSArrayI、__NSArrayM__NSPlaceholderArray

NSArray类簇 在《effective objective-c 2.0编写高质量iOS与OS X代码52个有效方法》这样写道:系统框架中有许多类簇,大部分collection类都是类族。...例如NSArray与其可变版本NSMutableArray。这样看来实际上有两个抽象基类,一个用于不可变数组,一个用于可变数组。尽管具备公共接口类有两个,但任然可以合起来算一个类族。...不过,任然有方法判断出某个实例所属类是否位于类族。...//will be hit } 言归正传,下面我们来说说__NSArray0、__NSArrayI、__NSArrayM__NSPlaceholderArray到底是什么鬼。...所以总结一下就是:__NSArrayI是NSArray真正类型 ,__NSArrayM是NSMutableArray真正类型。

2.8K80

OC学习13——Foundation框架集合

NSArray代表有序可重复集合;NSSet代表无序不可重复集合;NSDictionary代表具有映射关系集合。显然,这三类集合分别对应这JavaList、SetMap。   ...一、数组(NSArrayNSMutableArray) 1、NSArray代表元素有序、可重复一个集合,集合每个元素都有其对应顺序索引。...NSArray有一个子类NSMutableArrayNSMutableArray代表集合元素可变集合,因此,程序可以向集合添加新元素,可以删除集合已有的元素。   ...由于NSMutableArrayNSArray子类,所以继承了NSArray所有方法,此外还提供了一系列可以对数组进行修改方法: 添加集合元素方法:这类方法以add开头 删除集合元素方法:...)    NSSetNSMutableSet区别与NSArrayNSMutableArray之间区别是一样

2K80

iOS开发·必会算法操作:字符串数组排序+模型对象数组排序

传送门:排序算法演示小DEMO 前面的话 为了给字符串数组排序,除了用C/C++基本办法,iOS开发者更应该学会利用苹果专门为NSArray 排序提供sortedArrayUsingComparator...这个片假字有两套编码,同一个片假字分别有半角全角两种编码。例如:看起来像一样片假字组成句子,全角状态ア字符开头为アいろはアイウエイウエ,半角状态ア字符开头为アいろはアイウエイウエ。...请取出NSString类全部公有 属性 并存放到一个数组,并利用NSArraysortedArrayUsingComparator方法给这个数组进行升序排序操作。...要求:排序过程需要区分字符全角半角状态,其它可按系统默认条件。...请取出NSURL类包括私有 在内全部 成员变量,并存放到一个数组,并利用NSArraysortedArrayUsingComparator方法给这个数组进行升序排序操作。

2K10

Objective-C继承多态

Objective-Csuper是指向直接父类指针,而self是指向本身指针,self就相当于javathis指针。...在Objectiv-C几乎所有的类都是继承自NSObject类,NSObject类存在大量功能强大方法。下面对NSObject类各种方法进行试验介绍:         1....= str1"); }     ​    ​Objective-C继承         继承是is-a关系,比如猫咪是一个动物,那么动物是父类,而猫咪是动物子类。...2014-07-30 08:38:12.958 HelloOC[483:303] 我是富二代BILL`s son,我超喜欢飙车 ​Objective-C多态     ​    ​多态简单说就是对于不同对象响应同一个方法时做出不同反应...;     ​多态另一个例子: Animal是父类,子类有Cat Dog,子分别重写了父类eat方法;实例化对象时候可以用下面的方法: 1 2 3 4 5 6 7 Animal *animal

1.2K80

OC - 属性关键字所有权修饰符

这些关键字可以用于属性、方法返回值参数,来指定对象可空性,这样编写代码时候就会智能提示。在 Swift 可以使用!?...而在 Objective-C 则没有这一区分,button即可表示这个对象是optional,也可表示是non-optioanl。...1.ARC 为了避免循环引用而使用,可以让相互引用对象一个使用weak/__weak弱引用修饰,常用于对delegateblock修饰; 2.Interface Builder IBOutlet...(深浅拷贝) @property (copy) NSMutableArray *array; 答:不论赋值过来NSMutableArray还是NSArray对象,进行copy操作后都是NSArray...由于属性被声明为NSMutableArray类型,就不避免会有调用方去调用它添加对象、移除对象等一些方法,此时由于copy结果是NSArray不可变对象,对NSArray对象调用添加对象、移除对象等方法

1.3K31
领券