В настоящее время я пытаюсь использовать блочную копию в моем текущем проекте. Структура копии - это NSMutableArray, который содержит NSIntegers, NSStrings, другой NSMutableArray и два объекта ... Эти объекты в свою очередь содержат NSStrings. Массив содержит объекты, которые содержат NSInteger, и два объекта, которые содержат строки ...
Я полагаю, что должен использовать метод Block Copy для копирования объектов ... Код ниже ...
Я знаю, что код не выпускается должным образом ... Я пытался уменьшить код для вашей выгоды.
Любое понимание, которое ты мог бы пролить, было бы потрясающим.
//Main controller Excerpt
//Insert Position Information into temporary node point... Node Points can have multiple Positions (or rather you can face multiple directions at the node. Each Node has 3-4 of these.
[newNode.positionArray insertObject:[newPosition copy] atIndex:currentPosition];
Insert the temporary node into the Node Array.
[nodeArray insertObject:[newNode copy] atIndex:count];
//Main Controller Excerpt
//
// Node.h
//
#import <Foundation/Foundation.h>
@class Sequence;
@class Position;
@interface Node : NSObject {
NSInteger Id;
NSInteger currentPosition;
NSString *title;
NSMutableArray *positionArray;
Sequence *forwardSequence;
Sequence *backSequence;
}
-(id) copyWithZone: (NSZone *) zone;
@property (nonatomic, assign) NSInteger Id;
@property (nonatomic, assign) NSInteger currentPosition;
@property (nonatomic, assign) NSString *title;
@property (nonatomic, retain) NSMutableArray *positionArray;
@property (nonatomic, retain) Sequence *forwardSequence;
@property (nonatomic, retain) Sequence *backSequence;
@end
//
// Node.m
//
#import "Sequence.h"
#import "Position.h"
#import "Node.h"
@implementation Node
@synthesize Id;
@synthesize currentPosition;
@synthesize positionArray;
@synthesize title;
@synthesize forwardSequence;
@synthesize backSequence;
-(id) copyWithZone: (NSZone *) zone {
Node *nodeCopy = [[Node allocWithZone: zone] init];
nodeCopy.Id = Id;
nodeCopy.currentPosition = currentPosition;
nodeCopy.positionArray = [positionArray copy];
nodeCopy.title = title;
nodeCopy.forwardSequence = [forwardSequence copy];
nodeCopy.backSequence = [backSequence copy];
return nodeCopy;
}
@end
//
// Position.h
//
#import <Foundation/Foundation.h>
@class Sequence;
@interface Position : NSObject <NSCopying> {
NSInteger Id;
Sequence *leftSequence;
Sequence *rightSequence;
}
@property (nonatomic, assign) NSInteger Id;
@property (nonatomic, retain) Sequence *leftSequence;
@property (nonatomic, retain) Sequence *rightSequence;
-(id) copyWithZone: (NSZone *) zone;
@end
//
// Position.m
//
#import "Sequence.h"
#import "Position.h"
@implementation Position
@synthesize Id;
@synthesize leftSequence;
@synthesize rightSequence;
-(id) copyWithZone: (NSZone *) zone {
Position *positionCopy = [[Position allocWithZone: zone] init];
positionCopy.Id = Id;
positionCopy.leftSequence = [leftSequence copy];
positionCopy.rightSequence = [rightSequence copy];
return positionCopy;
}
@end
//
// Sequence.h
//
#import <Foundation/Foundation.h>
@interface Sequence : NSObject <NSCopying> {
NSInteger numberOfFrames;
NSString *imageNameScheme;
NSString *endFrame;
}
-(id) copyWithZone: (NSZone *) zone;
@property (nonatomic, assign) NSInteger numberOfFrames;
@property (nonatomic, copy) NSString *imageNameScheme;
@property (nonatomic, copy) NSString *endFrame;
@end
//
// Sequence.m
// MCIT
//
#import "Sequence.h"
@implementation Sequence
@synthesize numberOfFrames;
@synthesize imageNameScheme;
@synthesize endFrame;
-(id) copyWithZone: (NSZone *) zone {
Sequence *sequenceCopy = [[Sequence allocWithZone: zone] init];
sequenceCopy.numberOfFrames = numberOfFrames;
sequenceCopy.imageNameScheme = imageNameScheme;
sequenceCopy.endFrame = endFrame;
return sequenceCopy;
}
@end
Работает как шарм, теперь спасибо всем. : D