我知道这个主题之前已经完成,但是我想再次提起它,原因有很多,我有一个功能,用于将项目从一个数组移动到另一个数组,从最初的数组中删除项目,但每当我测试它,它似乎没有工作
-(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;
}
答案 0 :(得分:0)
如果你正在尝试做我认为这是一个非常非常简单的类别,应该为任何对象做。
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
答案 1 :(得分:0)
您可能没有在适当的时间将_currentHand
变量设置为nil,因此您可能没有正确的当前指针,这可能会使您看起来像是阵列交换的问题。 / p>