五十八、基础框架(十六)创建 地址簿-6

如果  一本地址簿  只能添加  地址卡片,而  不能删除  地址卡片,那么  这样的地址簿  是  不完整的。我们  可以制定  一项叫做removeCard:的措施  将  地址簿中的某张地址卡片  删除。首先  我们  在AddressBook.h这个文件当中  添加  下面一行语句:

然后  再  在AddressBook.m这个文件当中  描述  removeCard:这项措施  具体  是  如何实施的:

在removeCard:这项措施当中,我  对其实施对象中所包含的数组物件book  采取了  removeObjectIdenticalTo:这项措施。需要删除的卡片,也就是  AddressCard类型的物件,  存储  在变量card当中。removeObjectIdenticalTo:这项措施  会将  其实施对象中与参数完全相同的物件  删除。

接着  我们  在具体的程序当中  测试一下  removeCard:这项措施  是否能  正常  工作:

运行  这个程序后,可以得到  这样的结果:

在这个程序当中,我  先  对myBook这个物件  采取了  list这项措施,将  其内容  显示出来。接着  对myBook这个物件  采取了  removeCard:这项措施  并且  附带了  cardOne这个物件  作为参数,将  地址簿中的第一张卡片  删除。最后  再次  对myBook这个物件  采取了  list这项措施,将  其内容  显示出来,以验证  removeCard:这项措施  是否起了  作用。

从程序的运行结果  可以看出  在myBook这个地址簿当中  第一张卡片  和  第二张卡片的内容  是  完全  一样的。但是  removeCard:这项措施  只  删除了  其中一张卡片。为了解决  这个问题,我们  需要将  removeCard:这项措施当中的removeObjectIdenticalTo:这项措施  换成  removeObject:这项措施,就像  这样:

在removeCard:这项措施当中  removeObject:这项措施  会对  book这个数组物件中的地址卡片  采取  isEqual:这项措施,以判断  book这个数组物件中的地址卡片  与  需要删除的地址卡片  是否一致。于是  我们  需要  重新  编写  isEqual:这项措施。由于  book这个数组物件当中的地址卡片  属于  AddressCard类型的物件。于是  重新编写的isEqual:这项措施  必须适用于  AddressCard这类物件。所以  首先  在AddressCard.h这个文件中  添加  下面这行语句:

同时  在AddressCard.m这个文件中  添加  isEqual:这项措施的实施过程:

isEqual:这项措施  会判断  其实施对象中的姓名  和  邮箱地址  与  其参数中的姓名  和  邮箱地址  是否  一致,如果  一致,就将  YES  作为结果  传递回去;如果  不一致,就将  NO  作为结果  传递回去。

我们  运行一下  经过修改的程序,看看  会得到  什么样的结果:

在运行结果当中,内容完全一致的第一张卡片  和  第二张卡片  都被删除了,我们的目的 达到了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值