gpt4 book ai didi

objective-c - NSMutableArray 作为实例变量总是 null

转载 作者:可可西里 更新时间:2023-11-01 06:23:44 25 4
gpt4 key购买 nike

在浪费了很多时间之后,我正式向专家寻求帮助!

我的问题在于使用 NSMutableArray 作为实例变量,并尝试在我的类中的方法中添加对象和返回数组。我显然在做一些根本性的错误,非常感谢您的帮助……我已经尝试了关于 stackoverflow 的其他类似问题的所有建议,阅读了 apples 文档,基本上我能想到的所有试错编码组合。可变数组总是返回(null)。我什至尝试为它们创建属性,但数组仍然返回 (null),然后由于在设置属性时保留以及类的 init 方法中的 init,我也遇到了内存管理问题。

这是我正在尝试做的事情:

1) 循环遍历一系列 UISwitch,如果它们“打开”,则向 NSMutableArray 添加一个字符串

2) 用另一种方法将这个可变数组赋值给另一个数组

非常感谢任何帮助,

安迪

对于一些代码...

fruitsViewController.h

#import <UIKit/UIKit.h>

@interface fruitsViewController : UIViewController
{
NSMutableArray *fruitsArr;
UISwitch *appleSwitch;
UISwitch *orangeSwitch;
}

@property (nonatomic,retain) NSMutableArray *fruitsArr; // ADDED ON EDIT
@property (nonatomic,retain) IBOutlet UISwitch *appleSwitch;
@property (nonatomic,retain) IBOutlet UISwitch *orangeSwitch;

- (IBAction)submitButtonPressed:(id)sender;
@end

fruitsViewController.m

#import "fruitsViewController.h"

@implementation fruitsViewController

@synthesize fruitsArr; // ADDED ON EDIT
@synthesize appleSwitch, orangeSwitch;

/* COMMENTED OUT ON EDIT
-(id)init
{
if (self = [super init]) {
// Allocate memory and initialize the fruits mutable array
fruitsArr = [[NSMutableArray alloc] init];
}
return self;
}
*/

// VIEW DID LOAD ADDED ON EDIT
- (void)viewDidLoad
{
self.fruitsArr = [[NSMutableArray alloc] init];
}

- (void)viewDidUnload
{
self.fruitsArr = nil;
self.appleSwitch = nil;
self.orangeSwitch = nil;
}

- (void)dealloc
{
[fruitsArr release];
[appleSwitch release];
[orangeSwitch release];
[super dealloc];
}

- (IBAction)submitButtonPressed:(id)sender
{
if ([self.appleSwitch isOn]) {
[self.fruitsArr addObject:@"Apple"; // 'self.' ADDED ON EDIT
}
if ([self.orangeSwitch isOn]) {
[self.fruitsArr addObject:@"Orange"; // 'self.' ADDED ON EDIT
}
NSLog(@"%@",self.fruitsArr); // Why is this returning (null) even if the switches are on?!
[fruitsArr addObject:@"Hello World";
NSLog(@"%@",self.fruitsArr); // Even trying to add an object outside the if statement returns (null)
}
@end

最佳答案

您的 init 函数似乎从未被调用过。如果您从 NIB 初始化此 View Controller ,则需要使用 initWithCoder。如果没有,只需在 viewDidLoad 中声明您的 fruitArr。

关于objective-c - NSMutableArray 作为实例变量总是 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com