この質問の前に、これは私の側でのメモリ管理の誤りであると信じていると言っておきましょう。なぜそれが起こっているのか理解できないようです。
という名前のビューコントローラーとモデルクラスがありPart
ます。
#import <Foundation/Foundation.h>
@interface Part : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *partType;
@property (nonatomic, strong) NSString *description;
@property (nonatomic, strong) NSNumber *price;
- (id)initWithName:(NSString *)name AndType:(NSString *)type;
@end
ビューコントローラーでは、次のようにプロパティを設定しています。
@property (nonatomic, strong) Part *part;
のinit
関数で、ViewController
いくつかの静的配列を作成し、それらからオブジェクトを作成します。
- (id)init {
self = [super init];
self.partList = [[NSMutableArray alloc] init];
NSArray *inputArray = @[@"Part1",
@"Part2",
@"Part3",
@"Part4",
@"Part5",
@"Part6",
@"Part7",
@"Part8"];
NSString *tempType = @"PartCategory";
// Add dummy static data
for (int i = 0; i < [inputArray count]; i++) {
Part *partInput = [[Part alloc] initWithName:[inputArray objectAtIndex:i] AndType:tempType];
//partInput.name = [inputArray objectAtIndex:i];
//partInput.partType = tempType;
NSLog(@"Inserting Part %@", partInput);
[self.partList addObject:partInput];
}
return self;
}
そのNSLog
ループで呼び出す I はInserting Part *nil description*
、すべての部分を返します。ここで何が起こっているのかを追跡することはできません。
編集:コントローラーが使用するinitWithName
メソッドは次のとおりです。Part
- (id)initWithName:(NSString *)name AndType:(NSString *)type {
if(self = [super init]) {
self.name = name;
self.partType = type;
}
return self;
}