目標は、他のクラスがアプリケーション全体で使用するデータの配列を含むクラスを作成することです。
私はこのGlobalObject.hを持ってい
ます。これは、データを格納するために使用される配列を宣言します。
#import <Foundation/Foundation.h>
@interface GlobalObjects : NSObject
@property (retain) NSMutableArray *animals;
-(id)init;
@end
私はこのGlobalObject.mを持っています。
NSDictionaryデータが含まれ、配列に格納されます。
#import <Foundation/Foundation.h>
@interface GlobalObjects : NSObject
@property (retain) NSMutableArray *animals;
-(id)init;
@end
#import "GlobalObjects.h"
@implementation GlobalObjects
@synthesize animals;
-(id)init{
self = [super init];
if (self) {
// Define the data
NSArray *imagesValue = [[[NSArray alloc] initWithObjects:@"dog.wav",@"cat.png",@"bird.png",nil] autorelease];
NSArray *audioValue =[[[NSArray alloc] initWithObjects:@"dog.wav",@"cat.wav",@"bird.wav",nil] autorelease];
NSArray *descriptionValue = [[[NSArray alloc] initWithObjects:@"Dog",@"Cat",@"Bird",nil] autorelease];
// Store to array
for (int i=0; i<8; i++) {
NSDictionary *tempArr = [NSDictionary dictionaryWithObjectsAndKeys:[imagesValue objectAtIndex:i],@"image", [audioValue objectAtIndex:i],@"audio", [descriptionValue objectAtIndex:i], @"description", nil];
[self.animals addObject:tempArr];
}
}
return self;
}
@end
これが私がそれを呼ぶ方法です。
// someOtherClass.h
#import "GlobalObjects.h"
@property (nonatomic, retain) GlobalObjects *animalsData;
// someOtherClass.m
@synthesize animalsData;
self.animalsData = [[[GlobalObjects alloc] init] autorelease];
NSLog(@"Global Object %@ ",self.animalsData.animals);
ここで問題となるのは、この配列を別のクラスで呼び出すと、常にnullが返されることです。
私はiOSプログラミングに不慣れです。おそらく私の方法は間違っていますか?