真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

iOS關(guān)于數(shù)組的那些小菜菜-創(chuàng)新互聯(lián)

刪除數(shù)組

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),平湖網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:平湖等地區(qū)。平湖做網(wǎng)站價(jià)格咨詢:13518219792

  [areaArr ];

  [industryArr ];

  [natureArr ];

用NSMutableDictionary來保存“名片”記錄。那么這一次,我們擴(kuò)展,并使用NSMutableArray來保存“菜單信息。

那么,我們將在AddressBook類中加入相關(guān)的屬性。

AddressBook.h 文件中加入:

NSMutableArray *_bookArray;

@property(nonatomic,copy) NSMutableArray *bookArray;

在AddressBook.m 文件中加入:

@synthesize bookArray=_bookArray;生成相應(yīng)的get,set方法。

修改響應(yīng)初始化的方法來完成初始化:

- (id)initWithName:(NSString *)name{

  self=[super init];

  if (self) {

    _bookName=[[NSString alloc] initWithString:name];

    _bookArray=[[NSMutableArray alloc] init];

    _bookDictionary=[[NSMutableDictionary alloc] init];

  }

  return self;

}

下面,就開始響應(yīng)的NSMutableArray類的操作。

加入元素到NSMutableArray中:

- (void)addCardForArray:(AddressCard *)newCard{

  [_bookArray addObject:newCard];

}

使用時(shí):

NSString *aName=[[NSString alloc] initWithString:@"Tom"];

   NSString *aEmail=[[NSString alloc] initWithString:@"Tom@yahoo.cn"];

   int aSalary=1000;

   NSString *bName=[[NSString alloc] initWithString:@"LiLei"];

   NSString *bEmail=[[NSString alloc] initWithString:@"LiLei@yahoo.cn"];

   int bSalary=1100;

   NSString *cName=[[NSString alloc] initWithString:@"Lucy"];

   NSString *cEmail=[[NSString alloc] initWithString:@"Lucy@yahoo.cn"];

   int cSalary=900;

   NSString *dName=[[NSString alloc] initWithString:@"HanMeimei"];

   NSString *dEmail=[[NSString alloc] initWithString:@"HanMeimei@yahoo.cn"];

   int dSalary=1300;

   AddressCard *card1=[[AddressCard alloc] init];

   AddressCard *card2=[[AddressCard alloc] init];

   AddressCard *card3=[[AddressCard alloc] init];

   AddressCard *card4=[[AddressCard alloc] init];

   [card1 setName:aName andEmail:aEmail andSalary:aSalary];

   [card2 setName:bName andEmail:bEmail andSalary:bSalary];

   [card3 setName:cName andEmail:cEmail andSalary:cSalary];

   [card4 setName:dName andEmail:dEmail andSalary:dSalary];

AddressBook *myBook=[[AddressBook alloc] init];

  [myBook initWithName:@"MyBook"];

  [myBook addCardForArray:card1];// 添加元素

  [myBook addCardForArray:card2];

  [myBook addCardForArray:card3];

  [myBook addCardForArray:card4];

遍歷NSMutableArray中的元素:

- (void)printBookForArray{

  for (AddressCard *theCard in _bookArray) {

    [theCard print];

  }

}

使用時(shí):

[myBook printBookForArray];// 輸出元素

查詢NSMutableArray中的元素:

- (AddressCard *)findCardForArray:(NSString *)theName{

  for (AddressCard *theCard in _bookArray) {

    if ([[theCard name] caseInsensitiveCompare:theName]==NSOrderedSame) {

      return theCard;

    }

  }

  return Nil;

}

使用時(shí):

  AddressCard *theCard= [myBook findCardForArray:@"Tom"];// 查找

  if (theCard!=Nil) {

    [theCard print];

  }else{

    NSLog(@"No have");

  }

刪除NSMutableArray中的元素(一):

- (void)removeCardForArray:(AddressCard *)theCard{

  [_bookArray removeObjectIdenticalTo:theCard];

}

使用時(shí):先查找,再刪除

AddressCard *theCard= [myBook findCardForArray:@"Tom"];// 查找

  if (theCard!=Nil) {

     [myBook removeCardForArray:theCard];// 刪除元素

  }else{

    NSLog(@"No have");

  }

用這個(gè)方法,刪除的對(duì)象為同一對(duì)象。

什么時(shí)同一對(duì)象?方法備注中已經(jīng)說明。

所以,用removeObjectIdenticalTo方法,無法刪除那些,屬性值都相同,但是占有不同空間的對(duì)象。

不信,可以親自試一試!

[myBook printBookForArray];// 輸出元素

  AddressCard *removedCard=[[AddressCard alloc] init];

  // 申明一個(gè)新的Card對(duì)象,該對(duì)象與card1,具有相同的值,但是占有不同的內(nèi)存

  [removedCard setName:aName andEmail:aEmail andSalary:aSalary];

  [myBook removeCardForArray:removedCard];// 刪除元素

  [myBook printBookForArray];// 輸出元素

通過,輸出可以說明,并沒有刪除啊!

那我們要問?我只需要屬性值相等,就可以刪除。怎么辦?

那就開始下邊的操作把!

刪除NSMutableArray中的元素(二):

- (void)removeCardByisEqualForArray:(AddressCard *)theCard{

  [_bookArray removeObject:theCard];

}

方法中提到,要重載isEqual方法。

因?yàn)槲覀円M(jìn)行比較的元素是AddressCard;所以,在AddressCard類中重載isEqual方法:

- (BOOL)isEqual:(AddressCard *)theCard{

  if ([_name isEqualToString:theCard.name]==YES &&

    [_email isEqualToString:theCard.email]==YES) {

    return YES;

  }else{

    return NO;

  }

}

使用時(shí):

[myBook removeCardByisEqualForArray:removedCard];// 刪除元素

首先,調(diào)用AddressCard類中重載isEqual方法,比較元素是否相等;相等則會(huì)刪除;否則不刪除。

順便提及一下:

containsObject方法和indexOfObject方法都是通過isEqual方法的比較結(jié)果來進(jìn)行查找的。這兩個(gè)方法,就不詳細(xì)說明了。

NSMutableArray中元素的排序:

- (void) sortBySalarysForArray{

  [_bookArray sortUsingSelector:@selector(compareBySalary:)];

}

在AddressCard類中,編寫compareBySalary方法

- (NSComparisonResult) compareBySalary:(id)element{

  if (salary>[element salary]) {

    return NSOrderedDescending;

  }else if (salary<[element salary]) {

    return NSOrderedAscending;

  }else{

    return NSOrderedSame;

  }

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞名稱:iOS關(guān)于數(shù)組的那些小菜菜-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://weahome.cn/article/dhjgdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部