NSMutableArray 有多种可以删除元素的方法. 其中 removeObject,removeObjectIdenticalTo 这两个方法是有区别的. [anArray removeObjectIdenticalTo:anObject]; removeObject:anObject 删除所有与 anObject “isEquals” 的元素. removeObjectIdenticalTo:anObject 删除所有与 anObject 地址相同(同一个对象)的元素. 举个例子: 数组…
- (void)removeObject:(id)anObject inRange:(NSRange)aRange…
A * a1 = [A new]; A * a2 = [A new]; A * a3 = [A new]; A * a4 = [A new]; NSMutableArray *arr = [[NSMutableArray alloc]initWithArray:@[a1,a2,a3]]; [MyArr replaceObjectAtIndex: withObject:a4]; 结果 MyArr = @[a4,a2,a3];…
NSMutableArray *array = [[NSMutableArray alloc] init]; NSInteger num = 7; NSNumber *number = [NSNumber numberWithInt:num]; [array addObject:number]; NSLog(@"Array %@",array);…
原文地址:http://blog.csdn.net/totogo2010/article/details/7729377 Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象.但只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成对象才能加入数组. 1.NSArray 不可变数组[array count] : 数组的长度.[array objectAtIndex 0]: 传入数组脚标的id 得到数据对象.[ar…
Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象.但只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成对象才能加入数组. 1.NSArray 不可变数组 [array count] : 数组的长度. [array objectAtIndex 0]: 传入数组脚标的id 得到数据对象. [arrayWithObjects; ...] :向数组对象初始化赋值.这里可以写任意对象的指针,结尾必须使用nil. #…
转自:http://www.cnblogs.com/stoic/archive/2012/07/09/2582773.html Objective-C的数组比C++,Java的数组强大在于,NSArray保存的对象可以是不同的对象.但只能保存对象,int ,char,double等基本数据类型不能直接保存,需要通过转换成对象才能加入数组. 1.NSArray 不可变数组 [array count] : 数组的长度.[array objectAtIndex 0]: 传入数组脚标的id 得到数据对象…
上图是几种时间复杂度的关系,性能优化一定程度上是为了降低程序执行效率减低时间复杂度. 如下是几种时间复杂度的实例: O(1) return array[index] == value; 复制代码 O(n) for (int i = 0, i < n, i++) { if (array[i] == value) return YES; } 复制代码 O(n2) /// 找数组中重复的值 for (int i = 0, i < n, i++) { for (int j = 0, j < n,…
iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元素,数组也分为不可变数组和可变数组.       1.不可变数组NSArray:初始化之后不能修改数组的内容       2.可变数组NSMutableArray:可以随时修改数组的内容(增加元素.删除元素.修改元素) 二.NSArray数组的操作 1)NSArray数组的创建 1.创建方法一:使用…
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundation中数组(NSArray)是有序的对象集合 b:NSArray只能存储Objective-C的对象,而不能存储像int.float这些基本数据类型,但是Objective-C对C兼容,所以在Objective-C程序中,仍然可以使用C的数组来存储基本数据类型 c:NSArray一旦创建便不可以再对…
可变数组也可以使用枚举方法, 我们在这里提供了两种枚举方法, 一个是正序枚举, 一个是倒序枚举, 在正序枚举中, 元素的个数和顺序都是不可以修改的, 但是在倒序枚举中却可以修改, 这有些耐人寻味. 涉及的方法: objectEnumerator: 正序枚举方法. reverseObjectEnumerator: 倒序枚举方法. 下面我们来看看例子: //使用了枚举法的可变数组 #import <Foundation/Foundation.h> int main(int argc, const…
字典的key就相当于数组的下标,怎样操作数组你就学会了怎样才做字典:来感受一把 需要注意的是读取文件的类型要集合.plist文件的rooty:否则将不能读入文件 // 1.全国省市:得到的是省和市 // 读取文件路径 NSArray *arr = [NSArray arrayWithContentsOfFile:@"/Users/Mu/Documents/MyXcode-MyNotes/OC/Read.plist/Read.plist/plists/3.Chinacities.plist&quo…
一句话: YourSwiftObject convertedArray = your_MutableArray as NSArray as [YourSwiftObject]…
#import "NSArray+CrashArray.h" #import <objc/runtime.h> @implementation NSObject (Until) - (void)swizzleMethod:(SEL)originalSelector swizzledSelector:(SEL)swizzledSelector{ Class class = [self class]; Method original = class_getInstanceMet…
固化 对于大多数iOS应用,可以将其功能总结为:提供一套界面,帮助用户管理特定的数据.在这一过程中,不同类型的对象要各司其职:模型对象负责保存数据,视图对象负责显示数据,控制器对象负责在模型对象与视图对象之间同步数据.因此,当某个应用要保存和读取数据时,通常要完成的任务是保存和读取相应的模型对象. 对 JXHmoepwner 应用,用户可以管理的模型对象是 JXItem 对象.目前 JXHomepwner 不嗯给你保存 JXItem 对象,所以,当用户重新运行 JXHomepwner 时,之前创…
本章节主要为之前项目 JXHomepwner 添加照片功能(项目地址).具体任务就是显示一个 UIImagePickerController 对象,使用户能够为 JXItem 对象拍照并保存.拍摄的照片会和相应的 JXItem 对象建立关联,当用户进入某个 JXItem 对象的详细视图的时候,可以看见之前拍摄的照片. 照片的文件可能很大,最后与 JXItem 对象的其他数据分开保存.我们将建立一个用于存储数据的类 JXImageStore ,负责保存 JXItem 对象的照片.JXImageSt…
上个项目我们完成了 JXHomepwner 简单的应用展示,项目地址.本节我们需要在上节项目基础上,增加一些响应用户操作.包括添加,删除和移动表格. 编辑模式 UITableView 有一个名为  editing 的属性,如果将其设置为  YES , UITableView 就会进入编辑模式.在编辑模式下,用户可以管理 UITableView 中的表格行,我们可以添加.删除和移动等操作.但是编辑模式没有听过修改行的内容的功能. 首先要更新界面,使用户可以将 UITableView 对象设置为编辑…
UIGestureRecognizer 对象会截取本应由视图处理的触摸事件.当某个UIGestureRecognizer对象识别出特定的手势后,就会向指定的对象发送指定的消息.iOS SDK默认提供若干中UIGestureRecoginezer对象.本章我们将继续更新 JXTouchTracker ,借助由iOS SDK提供的三种 UIGestureRecogniezer对象,用户可以选择.移动.删除线条. UIGestureRecognizer子类 在为应用添加手势识别功能时,需要针对特定的手…
遍历可变数组的同时删除数组元素 NSMutableArray *copyArray = [NSMutableArray arrayWithArray:array]; NSString *str1 = @“zhangsan”; for (AddressPerson *perName in copyArray) { if ([[perName name] isEqualToString:str1]) { [array removeObject:perName]; } } 获取系统当前语言 NSStr…
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有: Foundation概述 常用结构体 日期 字符串 数组 字典 装箱和拆箱 反射 拷贝 文件操作 归档 Foundation概述 为什么前面说的内…
--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 基本介绍 UITableVie…
--多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行.改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于用户而言可以继续进行其他操作:对于多核处理器,如果用户在UI线程中完成某个操作之后,其他后…
简单介绍下,这是需求驱动中发现iOS的NotificationCenter有很多功能无法实现,于是对其进行了一层包装.相当于手动管理观察者栈和监听者期望执行的事件,因此可以为其添加了很多新增的功能,将其命名为MessageTransfer. 一.核心优点 1.高度解耦 生命周期与页面实例周期相隔离 可实现跨组件间通讯 业务无关,内部只关心block代码执行 2.灵活定制 每一条信息在发送的时候可以设置同步或异步执行 支持消息的内部处理操作,内部处理操作后将结果返回 一个消息有多个接收者时可以通过…
本文主要是基于极光推送的SDK封装的一个快速集成极光推送的类的封装(不喜勿喷) (1)首先说一下推送的一些原理: Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器. 上图可以分为三个阶段. 第一阶段:.net应用程序把要发送的消息.目的iPhone的…
大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行.改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于用户而言可以继续进行其他操作:对于多核处理器,如果用户在UI线程中完成某个操作之后,其他后续操作在别的线程中继续…
1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes {     CGFloat size = 0.0;     NSError *error;     NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error];     if (error) { #ifdef DEBUG         NSLog(…
什么是崩溃日志,从哪里能得它? iOS设备上的应用闪退时,操作系统会生成一个崩溃报告,也叫崩溃日志,保存在设备上.崩溃日志上有很多有用的信息,包括应用是什么情况下闪退的.通常,上面有每个正在执行线程的完整堆栈跟踪信息,所以你能从中了解到闪退发生时各线程都在做什么,并分辨出闪退发生在哪个线程上.有几种方法可以从设备上获取崩溃日志.设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上.根据电脑操作系统的不同,崩溃日志将保存在以下位置:Mac OS X:   ~/Library/Lo…
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouch Media Core Services Core OS -------------------- System Framework OC的类声明,定义域 OC关键字定义为  @class O-C特有的语句for(..in ..)迭代循环,其他的条件和循环语句和c一样 OC对面向对象的概述 (1)…
  iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&error]; if (error…
这篇文章,我们介绍CocoaAsyncSocket框架的使用,主要介绍实现客户端/服务器端代码,相信在网上已经很多这样的文章了,这里做一下自己的总结.这里介绍使用GCD方式 一.客户端 1.下载地址 读者可以在github下载框架源码 https://github.com/robbiehanson/CocoaAsyncSocket 下载后,可以看到在Examples下面可以看到很多例子,如果读者自学能力高,可以略过下面的文章. 2.开始使用 1)在 \Source\GCD 目录下,我们可以看到G…