如何在一个类中设置一个数组与另一个类中的另一个数组
我已经在一个类中用这样的数据填充和数组...
PowerClass.h
NSMutableArray pickerArray;
@property (nonatomic, retain) NSMutableArray pickerArray;
-
PowerClass.m
@synthesize pickerArray;
@implementation
NSMutableArray *array = [[NSArray alloc] initWithObjects:@"stef", @"steve", @"baddamans", @"jonny", nil];
pickerArray = [NSMutableArray arrayWithArray:array];
我试图在另一个类中设置数组,
WeekClass.h
PowerClass *powerClass;
NSMutableArray *pickerData;
@property (nonatomic, retain) NSMutableArray pickerData;
@property (nonatomic, retain) PowerClass *powerClass;
WeekClass.m
@implementation
pickerData = [NSMutableArray arrayWithArray:powerClass.pickerArray];
但没有错误或警告。它只是崩溃了。 NSLog 表明 powerClass.pickerArray 为 NULL。
请帮助我指出正确的方向。
I've populated and array with data like this in one class...
PowerClass.h
NSMutableArray pickerArray;
@property (nonatomic, retain) NSMutableArray pickerArray;
-
PowerClass.m
@synthesize pickerArray;
@implementation
NSMutableArray *array = [[NSArray alloc] initWithObjects:@"stef", @"steve", @"baddamans", @"jonny", nil];
pickerArray = [NSMutableArray arrayWithArray:array];
And I'm trying to set the Array in another class
WeekClass.h
PowerClass *powerClass;
NSMutableArray *pickerData;
@property (nonatomic, retain) NSMutableArray pickerData;
@property (nonatomic, retain) PowerClass *powerClass;
WeekClass.m
@implementation
pickerData = [NSMutableArray arrayWithArray:powerClass.pickerArray];
I have no errors or warnings. It just crashes. The NSLog says that the powerClass.pickerArray is NULL.
Please help point me in the right direction.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
内存管理!
您已经设置了 pickerArray = [NSMutableArray arrayWithArray:array]; ,这是一个自动释放的对象。当你稍后要求 pickerArray 时,它已经消失了!
解决方案是使用@synthesized 访问器。而不是:
...使用以下之一:
这样,您的属性将为您处理内存管理。
Memory management!
You've set
pickerArray = [NSMutableArray arrayWithArray:array];
, which is an autoreleased object. By the time you ask for pickerArray later, it's disappeared!The solution is to use the
@synthesize
d accessors. Instead of:... use one of the following:
This way, your property will handle memory management for you.