oc中数组的学习过程

        NSArray *aa = [[NSArray alloc]init];
        NSArray *aaa = [NSArray array];
        //声明单个内容数组
        NSArray *aaaa = [NSArray arrayWithObject:@"sd"];
        //声明多个内容数组
        NSArray *arr = [NSArray arrayWithObjects:@"SDS",@"Dsad", nil];
        //数组的长度
        NSLog(@"%zi",arr.count);
        //数组中某个下标对应的对象
        NSLog(@"%@",[arr objectAtIndex:1]);
        //数组中最后一个对应的对象
        NSLog(@"%@",[arr lastObject]);
        //数组中某个元素对应的下标
        NSLog(@"%zi",[arr indexOfObject:@"Dsad"]);
        //写入文件
        NSString *path = @"/Users/XuLee/Desktop/oc/abc.txt";
        [arr writeToFile:path atomically:YES];
        //读文件必须是特定格式
        NSString *ff = [NSArray arrayWithContentsOfFile:path];
        //把数组的对象中间加一个东西连接成一个字符串
        NSString *fg = [arr componentsJoinedByString:@"-"];
        //数组的遍历
        //普通遍历方式
        for (int i = 0; i < arr.count; i++) {
            id obj = [arr objectAtIndex:i];
            NSLog(@"%@",obj);
        }
        //快速遍历
        for (id obj in arr ) {
            NSLog(@"%@",obj);
        }
        //代码块遍历
        [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
        // obj为元素 idx 为下标 stop相当于break  stop为yes时 循环会结束
        {
            NSLog(@"%@",obj);
            //stop 赋值形式为 *stop = yes or no
        }];
        //迭代器遍历
        //将数组中各个元素装入迭代器中
        NSEnumerator * vv = [arr objectEnumerator];
        id obj = nil;
        while (obj = [vv nextObject]) {
            NSLog(@"%@",obj);
        }
        //反向迭代
        NSEnumerator *vvv = [arr reverseObjectEnumerator];
        while (obj = [vvv nextObject]) {
            NSLog(@"%@",obj);
        }
        //让数组统一调用某方法

        Student *stu1 = [[Student alloc]init];
        stu1.name = @"fff";
        Student *stu2 = [[Student alloc]init];
        stu2.name = @"hhh";
        NSArray *aee = [NSArray arrayWithObjects:stu1,stu2,nil];
        [aee makeObjectsPerformSelector:@selector(sayHi)];

        //让数组统一调用某一带参数的方法

        [aee makeObjectsPerformSelector:@selector(study:) withObject:@"math"];
        
-(NSString *)description
{
    NSString *aa = [NSString stringWithFormat:@"%@",_name];
    return aa;
}
-(void)sayHi
{
    NSLog(@"my name %@",_name);
}
-(void)study:(NSString *)ss
{
    NSLog(@"%@ study %@",_name,ss);
}
@property (nonatomic,strong)NSString *name;
-(void)sayHi;
-(void)study:(NSString *)ss;
时间: 2024-12-27 22:37:09

oc中数组的学习过程的相关文章

Swift的数组与OC中数组的区别

相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSArray和NSMutableArray,他们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息. Swift的数组与OC中数组的区别,布布扣,bubuko.com

Swif中数组相比OC中数组的新增方法

1) Swfit 中的数组 只能保存相同类型的值,不同于OC 与 Java 相同 2)      Swift初始化方法 var s0 = [1,2,3,4,5] var s1 :[Int] = [1 ,2 ,3 ,4 ,5] var s2: [String] var s3 = [Int]() 在swift 中  如果真行复制操作     s3 = s1   ,  s3 会复制一份s1 的值,是一次深copy.两份值互不影响. s3[0]的值发生了改变,但s1的值没有改变.输出 是1 , 2 ,3

OC中-数组是如何遍历的?

#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //也可以用:NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three",nil]; NS

OC中数组类NSArray的详解(二)

数组类的便利 1.for循环(大家都会的...) 2.NSEmunerator 3.for in 首先重点说下 第二种NSEmunerator枚举器,系统声明是 1 @interface NSEnumerator : NSObject <NSFastEnumeration> 2 3 - (id)nextObject; 4 5 @end 6 7 @interface NSEnumerator (NSExtendedEnumerator) 8 9 @property (readonly, copy

OC中数组的使用方法

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 创建数组 NSArray *arr1 = nil; //    NSLog(@"%p", arr1); NSObject *obj = [NSObject new]; arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"

OC中数组的用法

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 创建数组 NSArray *arr1 = nil; //    NSLog(@"%p", arr1); NSObject *obj = [NSObject new]; arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"

OC中对象元素的引用计数 自动释放池的相关概念

OC中数组对象在是如何处理对象元素的引用计数问题的,同时介绍一下自动释放池的相关概念 一.数组对象是如何处理对象元素的引用计数问题[objc]  view plaincopy 1. //   2. //  main.m   3. //  26_NSArrayMemeryManager   4. //   5. //  Created by jiangwei on 14-10-12.   6. //  Copyright (c) 2014年 jiangwei. All rights reserve

OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法

<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray array]; // for (int i = 0; i < 13; i ++) { // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]]; // } // NSLog(@"%@",arr);

【学习ios之路:Objective-C】OC中常用的系统排序方法

①.OC中常用排序方法: 1).不可变数组 - (NSArray *)sortedArrayUsingSelector:(SEL)comparator; - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr; 2)可变数组 - (void)sortUsingSelector:(SEL)comparator; - (void)sortUsingComparator:(NSComparator)cmptr; 3).字典排序 - (NS