iphone - 为什么我的 Application Delegate 中的类变量没有被实例化?

标签 iphone objective-c ios delegates initialization

这个问题已经困扰我一段时间了,不知何故我找不到我做错了什么。我必须说我是 Objective-C 和 Xcode 的新手。

所以问题是我尝试声明一个实例变量 (NSMutableArray),但由于某种原因,从未达到 init 函数。该变量始终为 NULL。

所以我有一个名为 PropertyProvider 的类,其中包含一个名为“properties”的 NSMutableArray。

@interface PropertyProvider : NSObject {
    NSMutableArray *properties;
}

@property (nonatomic, retain) NSMutableArray *properties;

..

@end

然后我在这个 PropertyProvider 类的 init 方法中实例化这个 NSMutableArray,如下所示:

@implementation PropertyProvider

@synthesize properties;

- (id) init {
    self = [super init];

    NSLog(@"Instantiating PropertyProvider");

    if (self) {
        properties = [[NSMutableArray alloc] init];
    }

    return self;
}

.. more code ..

@end

在我的应用程序委托(delegate)中,我尝试将 PropertyProvider 实例化为“prp”:

@implementation MyAppDelegate

@synthesize prp = _prp;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [[_prp init] alloc];
    [self.window makeKeyAndVisible];
    return YES;
}

.. more code ..

- (void)dealloc
{
    [_prp release];
    [super dealloc];
}

但是,由于某种原因,它永远不会到达我的 PropertyProviderinit 方法。为什么为什么?!

感谢您的帮助!

最佳答案

_prp 初始化为 PropertyProvider 实例的正确方法是,

_prp = [[PropertyProvider alloc] init];

因为 _prp 是一个实例变量,默认情况下它是 nil 因此发送给它的消息不会做任何事情,这就是你没有得到任何消息的原因错误。

关于iphone - 为什么我的 Application Delegate 中的类变量没有被实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6504936/

相关文章:

ios - 为什么我的 SELECT 语句总是返回 0.0000?

ios - popViewController 在 iOS 中的 NSURLSessionDataTask block 中不起作用

iphone - TTT 归属标签多色字体帮助

ios - plist的最大存储容量是多少?

ios - iOS 应用程序中的 C 样式字符串被损坏

ios - 从 0 开始 xAxis 和 yAxis 值并在图表库中设置自定义 xAxis 值

iphone - 在启动时自动实例化单例

iphone - 如何在 iOS 7 锁屏上设置当前播放持续时间和耗时?

objective-c - 将外部库添加到 XCode 4.3 中的项目

ios - 是否有适用于 armv7s 的 ios bing maps sdk 的解决方案?或者应该使用 bing ajax control v7 到 UIWebview 中?