NSArray - 数组

//
//  main.m
//  OC04-task-07
//
//  Created by Xin the Great on 15-1-24.
//  Copyright (c) 2015年 Xin the Great. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSArray+Log.h"
#import "Person.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...

        ///////////////NSArray - 数组///////////////
        //数组的创建, 使用alloc init创建和使用类方法创建功效是一样的,但是内存管理上不同
        NSArray *arr1 = [[NSArray alloc] initWithObjects:@"1",@"2", nil];
        NSLog(@"arr1 is %@",arr1);
        //类方法创建
        NSArray *arr2 = [NSArray arrayWithObjects:@"11",@"22", nil];
        NSLog(@"arr2 is %@",arr2);
        //此初始化方法使arr3只有一个元素
        NSArray *arr3 = [NSArray arrayWithObject:@"我们在学IOS"];
        NSLog(@"arr3 is %@",arr3);

        //创建一个人的对象
        Person *jack = [[Person alloc] init];
        jack.name = @"jack";
        jack.age = 30;
        NSArray *arr4 = [NSArray arrayWithObject:jack];
        NSLog(@"arr4 is %@",arr4);

        //通过已有的数组构造一个新的数组
        NSArray *newArray = [NSArray arrayWithArray:arr2];
        NSLog(@"newArray is %@",newArray);

        //数组的访问
        //objectAtIndex: 根据下标取出元素,如果下标越界,程序崩溃(crash)
        Person *jack1 = [arr4 objectAtIndex:0];
        NSLog(@"jack1 is %@",jack1);

        //通过元素取下标, 如果没有找到,则返回NSNotFound
        NSArray *arr5 = [NSArray arrayWithObjects:@"1",@"2",jack, nil];
//        NSInteger index = [arr5 indexOfObject:jack];
//        NSLog(@"index is %ld", index);
        NSInteger index = [arr5 indexOfObject:@"123"];
        NSLog(@"index is %ld", index);

        //求数组的长度
        NSInteger count = [arr5 count];
        NSLog(@"count is %ld", count);

        //判断数组中是否存在某一个元素,
        BOOL isTrue = [arr5 containsObject:@"123"];
        NSLog(@"isTrue is %d",isTrue);

        //将数组变成一个字符串
        NSArray *arr6 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
        NSString *str = [arr6 componentsJoinedByString:@"-"];
        NSLog(@"str is %@",str);
        //将字符串分割成数组
        NSArray *arr7 = [str componentsSeparatedByString:@"-"];
        NSLog(@"arr7 is %@",arr7);

        //获取第一个元素和最后一个元素
        NSString *firstStr = arr7[0];
        NSLog(@"firstStr is %@",firstStr);
//        NSString *lastStr = arr7[arr7.count - 1];
        //最后一个元素
        NSString *lastStr = [arr7 lastObject];
        NSLog(@"lastStr is %@",lastStr);

        //简单写法
        NSArray *arr8 = @[jack, @"2"];

        NSString *value = arr8[0];
        NSLog(@"value is %@",value);

    }
    return 0;
}

时间: 2024-12-17 20:15:06

NSArray - 数组的相关文章

Swift中实现Array数组和NSArray数组的相互转换与遍历

Array是Swift中的数组数据类型.而NSArray是OC中的数组数据类型.两者有差别有联系.在Swift中有时候难免会使用到OC中的一些东西.今天我们就来Swift中使用NSArray和Array,而且进行转化. (1)声明一个Array数组.并进行遍历.代码例如以下: let stringArray: Array<String> = ["10", "20","30","40","50"]

SEL如何保存到NSArray数组中

首先,SEL是不可以保存到array数组中去的. 其次,SEL有两种创建方法: SEL s1 = @selector (test1); // 将test1方法转换为NSString对象 SEL s2 = NSSelectorFromString ( @"test1" ); // 将一个字符串 方法 转换成为SEL对象 NSArray无法保存SEL,但是可以保存NSString. 所以我们利用第二种创建方法,讲SEL的方法名以字符串的方式保存到NSArray数组中即可. 举个栗子: NS

15.Object-C--NSArray数组的排序

NSArray数组的排序有三种方式: 1.简单排序(sortedArrayUsingSelector:) 2.利用block语法(sortedArrayUsingComparator:) 3.高级排序(sortedArrayUsingDescriptors:) 1.简单排序(sortedArrayUsingSelector:) 如果只是对字符串的排序,可以利用sortedArrayUsingSelector:方法就可以了,代码如下: 1 #pragma mark 数组排序 sortedArray

第四讲.NSString(字符串),NSArray(数组),NSNumber(代码)

1 #import <Foundation/Foundation.h> 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 6 7 /* 8 ----------------------------------------------------------- 9 字符串的使用 10 ------------------------------------------------------------ 11 *

iOS NSArray数组过滤

//iOS-筛选数组内的元素 //在dataArray中里面,将在dataArray中的并且在filteredArray数组里面的元素过滤掉 //需要去掉的元素数组 NSMutableArray *filteredArray = [[NSMutableArray alloc]initWithObjects:@"1",@"3",@"9", nil]; //需要被筛选的数组 NSMutableArray *dataArray = [[NSMutabl

iOS 基础之NSArray数组去重

1.面试题 现在有一个数组arr1,它里面存储的字符串分别为@“zhangsan”@“lisi”@“wangwu”@“lisi”@“zhangsan”,请将它去重后赋值给可变数组arr2输出为:@“zhangsna”,@“lisi”,@“wangwu”. 解题思路: 1)创建一个可变字典 2)遍历这个数组将数组的字符串存储为这个字典的key和value 3)调用字典的一下任意一个方法 @property (readonly, copy) NSArray<KeyType> *allKeys; @

NSArray数组

//1.创建集合 //NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作 NSArray * array = [[NSArray alloc] init]; NSLog(@"%@",array); //2.通过构造方法的方式创建一个NSArray //在创建一个NSArray的时候,集合的最后一个元素一定是nil NSArray * array1 = [NSArray arrayWithObjects:@"one",@"two&

让NSArray数组中每个对象都调用的方法

1. [array valueForKey:@"title"]; //Returns an array containing the results of invoking valueForKey: using key on each of the array's objects. 使数组中的每个对象都调用valueForKey:方法,并且将每个对象调用方法的结果依次存入一个新的数组中,然后返回 2. [self  setValuesForKeysWithDictionary:dict

IOS小技巧——使用FMDB时如何把一个对像中的NSArray数组属性存到表中

http://blog.csdn.net/github_29614995/article/details/46797917 在开发的当中,往往碰到要将数据持久化的时候用到FMDB,但是碰到模型中的属性有数组,但是FMDB存放的属性通常只为Text,那我们改怎么办呢? 思路:1.创建一个表,先将模型的除数组以为的其他属性写入表中,名为t_groupBuyModel 2.创建一个表装载模型中的数组文本,名为t_images 3.当存入模型到表中的时候,遍历模型中的数组属性,让每一条数据都存入t_im