I currently build an NSMutableArray in Class A.m within the ViewDidLoad Method.
- (void)viewDidLoad
{
[super viewDidLoad];
//Question Array Setup and Alloc
stratToolsDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:countButton,@"count",camerButton,@"camera",videoButton,@"video",textButton,@"text",probeButton,@"probe", nil];
stratTools = [[NSMutableArray alloc] initWithObjects:@"Tools",stratToolsDict, nil];
stratObjectsDict = [[NSMutableDictionary alloc]initWithObjectsAndKeys:stratTools,@"Strat1",stratTools,@"Strat2",stratTools,@"Strat3",stratTools,@"Strat4", nil];
stratObjects = [[NSMutableArray alloc]initWithObjects:@"Strategies:",stratObjectsDict,nil];
QuestionDict = [[NSMutableDictionary alloc]initWithObjectsAndKeys:stratObjects,@"Question 1?",stratObjects,@"Question 2?",stratObjects,@"Question 3?",stratObjects,@"Question 4?",stratObjects,@"Question 5?", nil];
//add strategys to questions
QuestionsList = [[NSMutableArray alloc]init];
for (int i = 0; i < 1; i++) {
[QuestionsList addObject:QuestionDict];
}
NSLog(@"Object: %@",QuestionsList);
At the end of this method you will see QuestionsList being initialized and now I need to send this Array to Class B.
So I place its setters and getters using the @property and @Synthesize method.
Class A.h
@property (retain, nonatomic) NSMutableDictionary *stratToolsDict;
@property (retain, nonatomic) NSMutableArray *stratTools;
@property (retain, nonatomic) NSMutableArray *stratObjects;
@property (retain, nonatomic) NSMutableDictionary *QuestionDict;
@property (retain, nonatomic) NSMutableArray *QuestionsList;
Class A.m
@synthesize QuestionDict;
@synthesize stratToolsDict;
@synthesize stratObjects;
@synthesize stratTools;
@synthesize QuestionsList;
I use the property method because I am going to call this variable from Class B and want to be able to assign it to another NSMutableArray.
I then add the @property and @class for Class A to Class B.h as well as declare the NSMutableArray in the @interface.
#import "Class A.h"
@class Class A;
@interface Class B : UITableViewController<UITableViewDataSource, UITableViewDelegate>{
NSMutableArray *QuestionList;
Class A *arrayQuestions;
}
@property Class A *arrayQuestions;
Then I call NSMutableArray from Class A in the Class B.m
-(id)initWithStyle:(UITableViewStyle)style
{
if ([super initWithStyle:style] != nil) {
//Make array
arrayQuestions = [[Class A alloc]init];
QuestionList = arrayQuestions.QuestionsList;
Right after this I Log the NSMutableArray to view values and check that they are there and it returns NIL.
//Log test
NSLog(@"QuestionList init method: %@",QuestionList);
Info about Class B-
Class B is a UIPopOverController for Class A, Class B has one View which holds a UITableView which I have to populate the results of Class A's NSMutableArray.
Why is the NsMutableArray coming back as NIL?
Ultimately would like some help figuring it out as well, it seems to really have me confused.
Help is greatly appreciated!!