ios笔记-NSSet

//
//  main.m
//  NSSet
//
//  Created by Passer-by on 15-3-23.
//  Copyright (c) 2015年 MAC. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool
    {
        /*
         NSSet和NSArray的对比
         1> 共同点
         * 都是集合,都能存放多个OC对象
         * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
         * 本身都不可变,都有一个可变的子类
         
         2> 不同点
         * NSArray有顺序,NSSet没有顺序
         */
        
        NSSet *set1 = [NSSet setWithObjects:@"a", @"b", @"c", @"d", nil];
        NSSet *set2 = [[NSSet alloc] initWithObjects:@"1", @"2", @"3", nil];
        NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
        NSSet *set3 = [NSSet setWithArray:array];
        
        NSLog(@"set1 :%@", set1);
        NSLog(@"set2 :%@", set2);
        NSLog(@"set3 :%@", set3);
        
        //获取集合个数
        NSLog(@"set1 count :%d", set1.count);
        
        //以数组的形式获取集合中的所有对象
        NSArray *allObj = [set2 allObjects];
        NSLog(@"allObj :%@", allObj);
        
        //获取任意一对象
        NSLog(@"anyObj :%@", [set3 anyObject]);
        
        //是否包含某个对象
        NSLog(@"contains :%d", [set3 containsObject:@"obj2"]);
        
        
        //是否包含指定set中的对象
        NSLog(@"intersect obj :%d", [set1 intersectsSet:set3]);
        
        //是否完全匹配
        NSLog(@"isEqual :%d", [set2 isEqualToSet:set3]);
        
        //是否是子集合
        NSLog(@"isSubSet :%d", [set3 isSubsetOfSet:set1]);
        
        
        
        NSSet *set4 = [NSSet setWithObjects:@"a", @"b", nil];
        NSArray *ary = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
        NSSet *set5 = [set4 setByAddingObjectsFromArray:ary];
        NSLog(@"addFromArray :%@", set5);
        
        
        
        
        NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@"1", @"2", @"3", nil];
        NSMutableSet *mutableSet2 = [NSMutableSet setWithObjects:@"a", @"2", @"b", nil];
        NSMutableSet *mutableSet3 = [NSMutableSet setWithObjects:@"1", @"c", @"b", nil];
        
        //集合元素相减
        [mutableSet1 minusSet:mutableSet2];
        NSLog(@"minus :%@", mutableSet1);
        
        //只留下相等元素
        [mutableSet1 intersectSet:mutableSet3];
        NSLog(@"intersect :%@", mutableSet1);
        
        //合并集合
        [mutableSet2 unionSet:mutableSet3];
        NSLog(@"union :%@", mutableSet2);
        
        //删除指定元素
        [mutableSet2 removeObject:@"a"];
        NSLog(@"removeObj :%@", mutableSet2);
        
        
        //删除所有数据
        [mutableSet2 removeAllObjects];
        NSLog(@"removeAll :%@", mutableSet2);
        
    }
    return 0;
}

时间: 2024-08-30 09:28:48

ios笔记-NSSet的相关文章

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)

==========android培训.ios培训.java培训.期待与您交流========== 一.NSSet: NSSet NSSet里面存储的元素没有顺序,NSArray中的元素有顺序. NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变. NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil]; NSString *str = [s2 anyObject]; //

iOS笔记:Objective-C自定义NSLog宏

/*  XCode LLVM XXX - Preprocessing中Debug会添加 DEBUG=1 标志  */ #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORM

学习ios笔记第一天的C语言学习记录

c语言基础学习 int num1 = 15; int num2 = 5; int temp = 0; //先把num1放到temp里 temp = num1; //先把num2放到num1里 num1 = num2; //先把temp放到num2里 num2 = temp; 算数运算符 +加法运算 -减法运算符 *乘法运算符 /除法运算符  ------整型相除取整,除数不为0 %取余运算符 ------两边均为整数 ++递增运算-------运算符在前,先执行:运算符在后,后执行: --递减运

iOS 笔记-incompatible pointer types initializing &#39;NSMutableString *&#39; with an expression of type &#39;NSString *&#39;警告处理

记录下来,以防止再犯错 代码如下 NSString *userHeader = [userInfoDictionary objectForKey:@"photo"]; NSMutableString *mutableuserHeader = [NSMutableString stringWithString:userHeader]; //设置用户头像 NSRange range = [mutableuserHeader rangeOfString:@".."]; [

iOS笔记之NSSet

 一.简介 NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet  , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray(是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的: NSSet和我们常用NSArry区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到了一个Hash(散列,也可直译为哈希)算法. NSSet和NSArray都是类,只能添加Cocoa对象

麦子学院ios笔记:IOS把图片缓存到本地的几种方法

把ios的图片缓存到本地的方法有几种?现在来看看学生在麦子学院学习ios开发的笔记中有讲到哪几种方法呢? <code>把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. </code> 一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 <code class="hljs" obje

[iOS笔记]《编写高质量iOS与OS X代码的52个有效方法》:1.熟悉Objective-C

简介: 最近公司项目收尾,可以有时间看看书了.<编写高质量iOS与OS X代码的52个有效方法>这本书讲解了很多iOS开发的技巧和规范,大力推荐! 下面是自己看书时整理的笔记,照惯例先上目录: 目录: 第一章:熟悉Objective-C 第二章:Object.Message.Runtime 第三章:接口与API设计 第四章:Protocol与Category 第五章:内存管理 第六章:Block与GCD 第七章:系统框架 第一章    熟悉Objective-C 第1条:了解Objective

IOS笔记050-事件处理

IOS事件处理 1.触摸事件 2.加速器事件:重力感应,旋转等事件 3.远程遥控事件:蓝牙线控,耳机线控等 触摸事件 响应者对象 只有继承了UIResponder得对象才能接收并处理事件 常见类有:UIApplication.UIViewController.UIView UIResponder中几个事件响应方法 触摸事件方法 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMove

【IOS笔记】Gesture Recognizers

Gesture Recognizers Gesture recognizers convert low-level event handling code into higher-level actions. They are objects that you attach to a view, which allows the view to respond to actions the way a control does. Gesture recognizers interpret tou