1

さて、私はxcodeにかなり慣れていませんが、この問題に固有のものはどこにも見つかりません。そのため、配列を宣言し、次のファイルでインスタンス化します。

    //xmlToUrl.h

#import <Foundation/Foundation.h>


@interface xmlToUrl : NSObject {
    NSMutableArray *field;
    NSMutableArray *name;
}
@property(nonatomic, retain)NSMutableArray *field;
@property(nonatomic, retain)NSMutableArray *name;

@end

    //xmlToUrl.m

#import "xmlToUrl.h"

@implementation xmlToUrl
@synthesize field;
@synthesize name;

-(void)dealloc
{
    [field release];
    [name release];
    [super dealloc];    
}

@end

だから、これは私が混乱しているところです。可変配列を正しく「割り当て」または「初期化」する方法も、xmlToUrl.h を継承する別のファイルから追加/削除操作を処理する方法もわかりません。

私が持っているコード(他のファイル内)は、nullを出力するだけです。以下にリストします。私は何を間違っていますか?!?

//nodeContent is just a NSMutableString

[xmlToUrlObject.name addObject:nodeContent];
        NSLog(@"xml Name = %@", xmlToUrlObject.name);

       //I omitted all the operational code here but if I NSLog nodeContent it prints the correct values

[xmlToUrlObject.field addObject:nodeContent];
        NSLog(@"xml Field = %@", xmlToUrlObject.field);
4

1 に答える 1

1

実装ファイルに init 関数が必要です。次のようになります。

-(id) init
{
  self = [super init];
  if (self) {
    field = [[NSMutableArray alloc] init];
    name = [[NSMutableArray alloc] init];
  }
  return self;
}

次に、[[xmlToUrl alloc] init] を介して xmlToUrl クラスのインスタンスを作成するたびに、2 つの NSMutableArray を既に初期化したクラスのインスタンスが作成されます。

于 2012-05-01T19:10:47.533 に答える