[英]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.