2016-08-17 82 views
-2

我想从我的self.view中将NSArray传递给子视图,这里是我的代码。将NSArray从self.view传递给子视图

mainView.h

NSArray *rssData; 
    @property(nonatomic,retain)NSArray *rssData; 

mainView.m

@synthesize rssData; 
MySubView *datacarry = [[MySubView alloc] init]; 
for (int i = 0; i<rssOutputData.count; i++) { 

      self.rssData = [[NSArray alloc] initWithObjects: 
              [NSDictionary dictionaryWithObjectsAndKeys:[[rssOutputData objectAtIndex:i]xmlhotel_name], @"hotelname", 
              [[rssOutputData objectAtIndex:i]xmlhotel_price], @"startingfrom", 
              [[rssOutputData objectAtIndex:i]xmlhotel_city],@"city", 
              [[rssOutputData objectAtIndex:i]xmlhotel_distance],@"distance", 
              [[rssOutputData objectAtIndex:i]xmlhotel_image],@"imagesnames", 
              [[rssOutputData objectAtIndex:i]xmlhotel_stars],@"numberofstars", 
              [[rssOutputData objectAtIndex:i]xmlhotel_id],@"hotelid", 
              @"45.5016889",@"hotelLat", 
              @"-73.567256",@"hotelLong", nil],nil]; 

datacarry.rssData = self.rssData; 
nslog(@"%@",datacarry.rssData); // here i can see data that is is transferred 

} 

这里是我的子视图是MySubView

MySubView.h

NSArray *rssData; 

@property(nonatomic,retain)NSArray *rssData; 

MySubView.m

@synthesize rssData; 
//rssData= [[NSArray alloc] init]; 
nslog(@"%@",rssData); // here i can see NO DATA 
+0

好了,你不必再页头中的init的mySUbView。 –

+0

即使然后我不能在nsSUbView –

+0

尝试强烈而不是保留nslog数据。你在哪里在mySUbView中做NSLOg? –

回答

0

为什么不在MySubView中提供像- (instancetype)initWithRssDats:(NSArray *)rssData这样的init方法?

MySubView.h

- (instancetype)initWithRssDats:(NSArray *)rssData; 

MySubView.m

- (instancetype)initWithRssDats:(NSArray *)rssData { 
    self = [super init]; 
    if (self) { 
     self.rssData = [rssData copy]; 
    } 
    return self; 
} 

mainView.m

MySubView *datacarry = [[MySubView alloc] initWithRssDats:self.rssData]; 
2

首先除去阵列的alloc初始化。 放了一些更多的代码来解决你的问题。

+0

请查看更新后的问题 –