OC的泛型使用介绍

  

一.泛型的介绍

  1.泛型就是没有规定类型,在使用的时候决定类型

  2.最早的泛型是C++ template

  3.c#将泛型发挥的淋漓尽致

  4.swift中首次引用泛型

  5.新的xcode 在swift影响下给OC加入了泛型(违泛型)

二.泛型的使用

  1.泛型的作用就是可以限制内容的类型

  2.正常的情况下,数组中存放的是id对象,如果我们想也要使用点语法,必须进行强转.

  3.如果我们使用泛型的话,可以限制里面的内容,如果传入的不是Person类型的对象就会有警告

  4.好处:我们可以直接通过点语法访问属性

//创建人的类
    Person *p = [Person new];
    Person *p1 = [Person new];

//创建一个只能存放person类型的数组        
    NSMutableArray<Person *> *array = [NSMutableArray array];

//添加到数组中            
    [array addObject:p];
    [array addObject:p1];

//通过数组设置类的内容            
    array[0].name = @"张三";
            
    array[1].name = @"赵四";

//如果我们添加一个OC对象会报警告        
    [array addObject:@1];
     
//打印  
    NSLog(@"%@", p.name);
    NSLog(@"%@", array[2]);

 

时间: 2024-10-10 13:35:17

OC的泛型使用介绍的相关文章

OC多文件开发介绍

OC多文件开发介绍: 1.为什么要使用多文件? 在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么.假设有两个类,分别是Person类和Dog类,则通常有下面五个文件: (1)Person.h Person类的声明文件 (2)Person.m Person类的实现文件 (3)Dog.h Dog类的声明文件 (4)Dog.m Dog类的实现文件 (5)Main.m 主函数(程序入口)在主函数以及类的实

java泛型探索——介绍篇

1. 泛型出现前后代码对比 先来看看泛型出现前,代码是这么写的: List words = new ArrayList(); words.add("Hello "); words.add("worlds!"); String s = (String) words.get(0) + (String) words.get(1); System.out.println(s.equals("Hello worlds!")); 而泛型出现后无需做显式转换:

iOS开发——实用技术OC篇&amp;?Invocation简单介绍

Invocation简单介绍 方法一:运行时方法:(这里在之前的文章定时器的几种方法中说过:www.cnblogs.com/iCocos/p/4694581.html) 1:创建一个签名: NSMethodSignature *singature = [NSMethodSignature signatureWithObjCTypes:"[email protected]:"]; 这里我想如果你仔细的话肯定注意到了:后面的“[email protected]:”,这里是运行时的语法在这里

Java泛型学习笔记 - (一)泛型的介绍

一.什么是泛型:泛型的作用是用来规定一个类, 接口或方法所能接受的数据的类型. 就像在声明方法时指定参数一样, 我们在声明一个类, 接口或方法时, 也可以指定其"类型参数", 也就是泛型. 不同的是, 声明方法时我们给其参数指定一个值, 而给其泛型指定一个数据类型.二.基本使用方式: 上面的概念啰嗦了许多, 其实我自己写的都累. 最简单有效的学习方法就是用一用嘛: 1 List<String> list = new ArrayList<String>(); 这就

iOS开发——图形与动画篇OC篇&amp; POP简单介绍及使用

POP简单介绍及使用 前言 动画在APP开发过程中 大家多多少少都会接触到 而且随着ios7的扁平化风格启用之后 越来越多的APP开始尝试加入各种绚丽的动画交互效果以增加APP的用户体验(当然 还是以国外的APP居多) 有过相关开发经验的同学肯定知道在iOS中 动画相关的部分都是基于Core Animation 但是今天我们不讨论Core Animation 今天的主角是POP -来自于Facebook的动画引擎(其实我不喜欢把POP定义为动画引擎 我愿意称它为函数发生器) 介绍 官方地址 ht

Java中泛型的介绍与简单使用

学习目标 掌握泛型的产生意义. 掌握泛型的基本使用. 了解泛型的警告信息及泛型的擦除. 泛型是在JDK1.5之后增加的内容,泛型(Generic) 使用泛型的原因 题目分析: 首先要考虑到,必须建立一好一个表示坐标点的类--Point,此类中有两个属性分别用来表示x坐标和y坐标,但是x和y中所保存的整数类型会有三种(int.float.String),而要想使用一个类型可以同时接收这样的三种类型数据,现在只能使用Object,因为Object类可以接收任何类型的数据,都会自动发生向上转型操作,这

【OC加强】枚举介绍、数组的排序、对象的排序、如何利用block排序以及一些数据类型知识

(1)枚举的定义和元素调用 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *[email protected][@"one",@"two",@"three"]; //把数组变成枚举 NSEnumerator *enum1=[arr1 objectEnumerator]; NSS

OC 中 @synthesize 关键字介绍和使用

@synthesize用法 1)@property int age; @synthesize age; 表示生成.h中变量 age的 get和 set方法 注意: 如果@synthesize 变量名要先在.h文件中声明 @property int age; @synthesize age;展开形式如下: .h -(void)setAge:(int ) age; -(int)age; .m -(void)setAge:(int) age{ slef->age=age; } -(int)age{ r

iOS 强大的泛型,同样也可以对UIButton进行扩展

文章围绕这五点: 1. 泛型是什么 2. 为什么要用泛型 3. 泛型怎么用 4. 泛型进阶 5. 泛型的延伸使用 泛型(Generics)是什么? 引用Apple中Generics的描述: Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can writ