簡體   English   中英

如何將對象從一個數組移動到另一個數組

[英]how to move an object from one array to another

我知道這個主題以前已經做過,但是由於特定的原因我想再次提出它,我有一個函數可以將一個項目從一個數組移到另一個數組,從原來的數組中刪除該項目,但是無論何時我測試了,它似乎不起作用

-(void) moveOpperand: (NSMutableArray *) moveFrom :(NSMutableArray *) moveTo{
    NSString *opperandObject = [moveFrom lastObject];
    if (opperandObject) {
    [moveTo addObject:moveFrom.lastObject];
        [moveFrom removeLastObject];
    }
}

上面的方法在這個方法中被調用

-(NSMutableArray *) giveHand: (NSMutableArray *) hand : (NSMutableArray *)refrenceDeck{

    for (int i=0; i<6; i++) {
        [self moveOpperand:refrenceDeck :hand];
    }
    return hand;
}

當我嘗試實現currentHand方法時,似乎位於測試時的錯誤

-(NSMutableArray *) currentHand{
    if (_currentHand == nil) {

        self.currentHand = [self.myDeck giveHand:self.currentHand :self.myDeck.currentDeck];

    }
    return _currentHand;

}

如果您要嘗試執行的操作,我認為這是一個非常簡單的類別,應針對任何對象執行此操作。

NSObject + Move.h

#import <Foundation/Foundation.h>

@interface NSObject (Move)

/*
 Returns true if it sucessfully moves the object between arrays.
 */
- (BOOL)moveFromArray:(NSMutableArray *)arrayA toArray:(NSMutableArray *)arrayB;

@end

NSObject + Move.m

#import "NSObject+Move.h"

@implementation NSObject (Move)

- (BOOL)moveFromArray:(NSMutableArray *)arrayA toArray:(NSMutableArray *)arrayB
{
    if ([arrayA containsObject:self]) {
        [arrayA removeObject:self];
        [arrayB addObject:self];

        return YES;
    } else {
        return NO;
    }
}

@end

您可能沒有在適當的時間將_currentHand變量設置為nil,因此您可能沒有正確的當前手,這可能使它“看起來”像數組交換的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM