Object-C-NSArray】的更多相关文章

前段时间与某公司的技术交流,被问到一个问题,如何删除NSDictionary中的NSNull.当时在纸上写,以前太依赖Xcode编译器了,以至于方法名都写不全,最终也没写出来,我想我肯定被鄙视的体无完肤. 最近有机会实现了一下.先来递归实现方案: // 删除NSArray中的NSNull - (NSMutableArray *)removeNullFromArray:(NSArray *)arr { NSMutableArray *marr = [NSMutableArray array]; f…
Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary NSSet NSArray.NSDictionary和NSSet的Mutable类型 Foundation框架中集合类的使用详见苹果官方文档 集合类的实用操作 深层遍历 深层复制 待研究 概述——对Foundation框架集合类的理解 NSArray 创建 NSArray *array = [NSAr…
数组 用来存贮对象的有序列表,它是不可变的 不能存数C语言的基本数据类型 只支持OC对象 #pragma mark Create a array //Initialize NSArray void arrayCreate(){ //Create an empty array NSArray *array=[NSArray array];// static method create static Array no need to release //empty can't add boz it…
相等的概念是探究哲学和数学的核心,并且对道德.公正和公共政策的问题有着深远的影响. 从一个经验主义者的角度来看,两个物体不能依据一些观测标准中分辨出来,它们就是相等的.在人文方面,平等主义者认为相等意味着要保持每个人的社会.经济.政治和他们住地的司法系统都一致. 对程序员来说,协调好逻辑和感官能力来理解我们塑造的'相同'的语义是一项任务.'相同的问题'(的探讨)太微妙,同时有太容易被忽视.对语义没有充分的理解就直接去实现它,可能会导致没必要的工作和不正确的结果.因此对数学和逻辑系统的深刻理解与按…
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.NSSet的创建和初始化 创建一个空的NSSet集合:+ (void)set; 用数组来创建NSSet集合:+ (id)setWithArray:(NSArray *)array; 创建具有一个元素的集合:+ (id)setWithObject:(id)object; 创建具有多个元素的集合:+ (id)setWithObjects:(id)firstObj, ...; 用集合来创建集合:+ (id)setWithSet:(NSSet *…
原型模式:大部分重复,只有一小部分不同的情况下,为了代码清晰和避免麻烦,用原型模式,会更方便一点 // 学生1 StudentModel *stu1 = [[StudentModel alloc] init]; stu1.name = @"小王"; stu1.age = @(); stu1.address = @"中关村"; stu1.totalScore = @(); // 学生2 StudentModel *stu2 = [[StudentModel alloc…
if (CGRectContainsPoint(self.menuView.frame, point)) { point =  [self.view convertPoint:point toView:self.menuView]; selectedView = [[self.itemViews filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(RNMenuItemView *itemView, NSDiction…
[Collection Operators] Collection operators are specialized key paths that are passed as the parameter to the valueForKeyPath: method. The operator is specified by a string preceded by an at sign (@). The key path on the left side of the collection o…
#import <Foundation/Foundation.h> #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis" typedef NS_ENUM(NSInteger, XMLDictionaryAttributesMode) { XMLDictionaryAttributesModePrefixed = , //default XM…
KVO/KVC总结       下面是根据网上文章的总结,方便查看. 在网上看别人的文章,了解KVC.KVO,有个kvo-kvc的例子,就是改变数组的内容(插入和删除),同步改变tableview中的内容.运行了代码之后,想添加修改数组时改变tableview内容,但是一直不能调用观察函数,后来又查了点资料,原来,数组的kvc是都是有固定格式的函数名字.把改后的工程放到资源里面了.供大家下载.下面是拷贝过来的资料. 一.KVC和KVO的概念 1> KVC:NSKeyValueCoding的简称,…
kvc在我的脑海里用来更改属性的实例变量值. 今天,他们遇到了kvc第二次去学习它,在网上看了很多博客,这似乎不符合我的口味,为了提取一些以下的.总结自己的. http://www.cnblogs.com/stoic/archive/2012/07/20/2601315.html 这个博主写的是一些应用实例.我比較喜欢,他说明了.怎样去代码操作: http://blog.csdn.net/omegayy/article/details/7381301 这个博主是基本的原理. 以下是自己感觉实用的…
source link: 1.http://blog.bignerdranch.com/1907-hooked-on-dtrace-part-1/ 2.http://blog.bignerdranch.com/1968-hooked-on-dtrace-part-2/ 3.http://blog.bignerdranch.com/2031-hooked-on-dtrace-part-3/ 4.http://blog.bignerdranch.com/2150-hooked-on-dtrace-p…
原文:http://www.cocoachina.com/ios/20170421/19096.html 前言 本文并不是CoreData从入门到精通之类的教程, 并不会涉及到过多的原理概念描述, 而是介绍如何让CoreData的使用变得更加简单明了, 方便亲民. 全文约六千字, 预计花费阅读时间15分钟. 目录 这是什么以及如何使用 原理概述 实现细节: 单表的增删改查 实现细节: 一对一关系 实现细节: 一对多关系 实现细节: 多对多关系 一. 这是什么以及如何使用 大概是去年夏天, 因为要…
1.第一种解决方案 就是在每一个 可能传回null 的地方 使用  if([object isEqual:[NSNUll null]]) 去判断 2.第二种解决方案 网上传说老外写了一个Category,叫做NullSafe..只支持到ios9,3  ,实测 并没有解决我的问题.. 3.第三种解决方案 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3495af } p.p2 { margin: 0.0px…
KVC是OC特有的,本质是在运行时动态的给对象发送setValue:forKey 消息,设置数值 -调用super.init 保证对象已经被创建完成 .当给对象发送setValue:forKey 消息时要判断对象是否存在key所对应的属性,直接赋值 如果没有就调用undefinedKey(默认崩溃,需要重写) setValue:forKey的调用顺序首先会寻找set<key>方法,如果没有就去找_<key>  _is<Key>  <key> is<ke…
这两天在看和这个相关的的内容,全部推翻重写一个版本,这是公司内做技术分享的文档总结,对结构.条理做了更清晰的调整.先找了段代码,理解下,网上看到最多的一段的关于KVC的代码 先上代码 1.     1 .Person类 2.     @implementation Person 3.     @synthesize name,age;//属性name 将被监视 4.     -(void) changeName 5.     { 6.         name=@"changeName dire…
iOS Programming Web Services and UIWebView The work is divided into two parts. The first is connecting to and collecting data from a web service and using that data to create model objects. The second part is using the UIWebView class to display web…
来源:http://blog.sina.com.cn/s/blog_b0c59541010151s0.html 这两天在看和这个相关的的内容,全部推翻重写一个版本,这是公司内做技术分享的文档总结,对结构.条理做了更清晰的调整.先找了段代码,理解下,网上看到最多的一段的关于KVC的代码 先上代码  1.     1 .Person类 2.     @implementation Person 3.     @synthesize name,age;//属性name 将被监视 4.     -(vo…
第一种方法是:将多层级的递归转换 方法: +(id) recursiveMutable:(id)object { if([object isKindOfClass:[NSDictionary class]]) { NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithDictionary:object]; for(NSString* key in [dict allKeys]) { [dict setObject:[App…
昨天总结了一下NSString与NSMutableString,今天我在这里总结一下NSArray与NSMutableArray. NSArray数组是:不可变数组. nil 是数组元素结束的标记.OC数组中不能存放nil值. NSMutableArray是可变数组. 同时在OC数组中不能存放非OC对象的数据类型,比如:int .struct. enum等类型. 下面开始说一下NSArray数组. (1).数组的创建 arrayWithObject  arrayWithObjects //NSA…
NSString *string = [self jsonObjectToJSONString:inputDataDic]; -(NSString*)jsonObjectToJSONString:(id)object { if ([NSJSONSerialization isValidJSONObject:object]) { NSString *jsonString = nil; NSError *error; NSData *jsonData = [NSJSONSerialization d…
今天我来总结一下NSArray数组的排序方式. NSArray数组的排序有三种方式: 1.简单排序(sortedArrayUsingSelector:) 2.利用block语法(sortedArrayUsingComparator:) 3.高级排序(sortedArrayUsingDescriptors:) 1.简单排序(sortedArrayUsingSelector:) 如果只是对字符串的排序,可以利用sortedArrayUsingSelector:方法就可以了,代码如下: #pragma…
一.列表假数据 //在.h文件里面定义node所包含实体类---1 struct listTestNode { NSString *image; NSString *name; }; //在.m实现文件里面 //把不同的数据赋值给NSArray---------2 NSArray *testList = [[NSMutableArray alloc]init]; for(int i=0;i<3;i++) { struct listTestNode node; switch (i) { case…
Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]initWithString:@“123”]; NSString * string3 = [NSString stringWithString:@“123”]; //格式化方法创建   存放地址是堆区 NSString * string2 = [NSString alloc]initWithFormat:@…
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准确性),还需要了解其中所隐藏的算法知识. 在项目当中使用集合类几乎是不可避免的,集合类的使用场景其实可以进行抽象的归类.大多数时候我们需要将若干个对象(object)暂时保存起来,以备后续的业务逻辑进行操作,「保存和操作」,或者说「存与取」,对应到计算机世界的术语就是读和写.最初保存的时候我们Ins…
可能是被释放的property本身是OC对象而它的属性被误写成assign,例如: @interface MyItem : Object @property (nonatomic, assign) NSString *string; @end MyItem *item = [[MyItem alloc] init]; NSArray *array = @[item]; 那么,在程序运行期间,一直在使用的array中的item对象,其string有可能会变成悬浮指针,导致读取时崩溃.…
nil指针对NSDictionary及NSArray初始化的影响 最近在做项目的时候遇到一个挺坑的崩溃问题,是由于NSDictionary初始化时nil指针引起的崩溃.假设我们现在要初始化一个{key1 : value1, key2 : value2, key3 : value3}的NSDictionary,一般有两种初始化方法: 1.使用标准的初始化方法: NSDictionary *dictionary =[[NSDictionaryalloc] initWithObjectsAndKeys…
问题引入,我想给NSString类扩展一些新的方法.在Objective-C中可以有两种方法,一是继承,二是类别.本文先不讨论类别,我们用继承的方法试一下: @interface StringEx : NSString - (void)myFunc; @end @implementation StringEx - (void)myFunc { NSLog(@"myFunc"); } 我想用下面的方法使用: StringEx* str = [[StringEx alloc] initWi…
常见的NSString和NSMutableString方法: NSString方法: [plain] view plaincopy   +(id) stringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误 +(id) stringWithContentsOfURL:url encoding:enc error:err 创建一个新的字符串,并将其设…
1,for循环读取 NSArray: NSArray *array = /*…*/ ; i<array.count; i++) { id object = array[i]; // do sth } NSDictionary: NSDictionary *dic = /*…*/ NSArray *keys = [dic allKeys]; ; i<keys.count; i++) { id key = keys[i]; id value = dic[key]; //do sth } NSSet…