13

私のアプリケーションには、いくつかのデータを含む NSArray があります。そのデータを取得して、NSMutableArray呼び出されたsubArrayData. 最初の配列から変更可能な配列にデータを挿入することはできますが、アプリケーションを実行すると次のようになります。

警告: 'nsarray *' から 'nsmutablearray *' に代入する互換性のないポインター型です。助けてください。

以下は私のコードです:.hファイル

#import <UIKit/UIKit.h>

@interface AddNew : UIViewController
{
    NSMutableArray *subArrayData;;
}
@property(nonatomic ,retain)NSMutableArray *subArrayData;

.m ファイル

#import "AddNew.h"
#import "DashBoardPage.h"
#import "SubmitYourListing.h"


@implementation AddNew

@synthesize subArrayData;

-(void)accommodationAndTravel
{
    subArrayData =[[NSArray alloc] initWithArray:[NSArray arrayWithObjects:@"Select one",@"Accommodation and travel hospitality",@"Apartments and villas",@"Bed and Breakfast",@"Caravan parks and campsites",@"Hospitality",
                                                  @"Hotels and Motels",@"Snow and Ski lodges",@"Tourist attractions and tourism information",@"Tours and Holidays",@"Travel agents and Services",nil]];


}
4

3 に答える 3

24

-mutableCopy メソッドを呼び出すことで、任意の NSArray を NSMutable 配列に変換できます。

NSArray *someArray = ...;
NSMutableArray* subArrayData = [someArray mutableCopy];
于 2012-04-18T07:15:27.160 に答える
22

.m ファイルを変更する

#import "AddNew.h"
#import "DashBoardPage.h"
#import "SubmitYourListing.h"


@implementation AddNew

@synthesize subArrayData;

-(void)accommodationAndTravel
{
    subArrayData =[[NSMutableArray alloc] initWithArray:[NSArray arrayWithObjects:@"Select one",@"Accommodation and travel hospitality",@"Apartments and villas",@"Bed and Breakfast",@"Caravan parks and campsites",@"Hospitality",
                                                  @"Hotels and Motels",@"Snow and Ski lodges",@"Tourist attractions and tourism information",@"Tours and Holidays",@"Travel agents and Services",nil]];


}
于 2012-04-18T07:12:20.297 に答える
9

NSMutableArray次のように、 のイニシャライザの1 つを呼び出すだけです。

subArrayData = [[NSMutableArray alloc] initWithObjects:
                                        @"Select one",
                                        @"Accommodation and travel hospitality",
                                        @"Apartments and villas",
                                        @"Bed and Breakfast",
                                        @"Caravan parks and campsites",
                                        @"Hospitality",
                                        @"Hotels and Motels",
                                        @"Snow and Ski lodges",
                                        @"Tourist attractions and tourism information",
                                        @"Tours and Holidays",
                                        @"Travel agents and Services",
                                        nil]];

既存の を扱っている場合、以下NSArrayを作成できますmutableCopy

- (id)initWithArray:(NSArray *)array
{
  self = [super init];
  if (nil != self) {
    subArrayData = [array mutableCopy];
    ...
于 2012-04-18T07:06:20.560 に答える