私はXcodeを初めて使いました。配列と辞書でクラスを作成しようとしています。私はオブジェクトを正しく初期化する方法を理解していません。私は間違って何をしていますか?新しいクラスの配列と辞書
"maindata.h"
#import <Foundation/Foundation.h>
@interface maindata : NSDictionary
{
NSDictionary *maindict;
NSArray *arrayofallmethods;
NSArray *categories;
NSArray *methods;
}
@property(nonatomic,retain) NSDictionary *maindict;
@property(nonatomic,retain) NSArray *categories;
@property(nonatomic,retain) NSArray *methods;
@property(nonatomic,retain) NSString *pathtoplist;
+(maindata *) shareddata;
@end
"maindata.m"
#import "maindata.h"
@implementation maindata
@synthesize maindict;
@synthesize methods;
@synthesize categories;
@synthesize pathtoplist;
static maindata *shareddata_;
-(id)init
{
if(self == [super init])
{
pathtoplist = [[NSBundle mainBundle] pathForResource:@"allData" ofType:@"plist"];
shareddata_.maindict = [NSMutableDictionary dictionaryWithContentsOfFile:pathtoplist];
shareddata_.methods = [maindict allValues];
}
return shareddata_;
}
+(maindata *) shareddata
{
if (!shareddata_)
{
shareddata_ = [[maindata alloc] init];
}
return shareddata_;
}
@end
Ruはいずれかを取得を書くことができ、比較が、割り当てないラインに注目してくださいエラー。?!あなたはどんな問題があるのか、何が欲しいのですか? maindictはNSDictionaryです。しかし、initメソッドでは、NSMutableDictionaryを使ってそれを割り当てています。 –
1つの有効なクラスを作成しようとしていることを確認してください。それを参照してください。助けてほしいという希望... – Jim
クラス名は常に 'UpperCamelCase'にあるべきです。これがコンベンションであり、Cocoaフレームワークはこれらの規約に時々依存しています。 – dreamlax