gpt4 book ai didi

objective-c - iOS 初始化静态对象的成员失败

转载 作者:行者123 更新时间:2023-11-29 04:35:46 24 4
gpt4 key购买 nike

我有以下代码,当我运行它时失败。我的 .h 文件:

 @interface OutlineManager : NSObject
{
NSMutableArray* mOutlines;
}

@property(nonatomic,strong)NSMutableArray* Outlines;


+(void)initialize;

@end

static OutlineManager* outlnManager;

在 .m 文件中:

#import "OutlineManager.h"

@implementation OutlineManager

@synthesize Outlines = mOutlines;

+(void)initialize
{
outlnManager = [[[OutlineManager superclass]alloc]init];
if(outlnManager)
{
outlnManager.Outlines = [[NSMutableArray alloc]init]; //it crashes here
}
NSLog(@"OUTLINEMANAGER INITIALIZED");
}

@end

当我运行 (void)initialize 时,应用程序在我放置注释的 if 部分崩溃,但我不知道为什么。我不能初始化这样的静态对象数组吗?

我想这是非常基本的东西,但我对 Obj C/iOS 还很陌生,所以请不要因此反对我。

非常感谢您的帮助!

此致,佐利

最佳答案

你写道:

outlnManager = [[[OutlineManager superclass]alloc]init];

该父类(super class)意味着您在 NSObject 上调用 alloc,而不是在 OutlineManager 上调用。只需将此行替换为:

outlnManager = [[OutlineManager alloc]init];

哦,您应该在 .m 文件中声明静态变量。

关于objective-c - iOS 初始化静态对象的成员失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080633/

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