Ошибка Objective-C при реализации класса? - PullRequest
0 голосов
/ 26 августа 2011

У меня есть этот класс

#import <Foundation/Foundation.h>

@interface SubscriptionArray : NSObject{
    NSString *title;
    NSString *source;
    NSString *htmlUrl;
}

@property (nonatomic,retain) NSString *title;
@property (nonatomic,retain) NSString *source;
@property (nonatomic,retain) NSString *htmlUrl;

@end

, и файл реализации такой:

#import "SubscriptionArray.h"

@implementation SubscriptionArray
@synthesize title,source,htmlUrl;

-(void)dealloc{
    [title release];
    [source release];
    [htmlUrl release];
}

@end

Когда я использую класс, как в этом примере, я получаю ошибку EXEC_BAD_ACCESS:

  for (NSDictionary *element in subs){
            SubscriptionArray *add;
            add.title=[element objectForKey:@"title"];   //ERROR Happens at this line
            add.source=[element objectForKey:@"htmlUrl"];
            add.htmlUrl=[element objectForKey:@"id"];
            [subscriptions addObject:add];


        }

Может кто-нибудь мне помочь?PS Подписки - это NSMutableArray

Ответы [ 2 ]

5 голосов
/ 26 августа 2011

Вам необходимо выделить объект SubscriptionArray следующим образом: SubscriptionArray *add = [[SubscriptionArray alloc] init];

Ваш цикл for будет выглядеть примерно так:

for (NSDictionary *element in subs){
        SubscriptionArray *add = [[SubscriptionArray alloc] init];
        add.title=[element objectForKey:@"title"];
        add.source=[element objectForKey:@"htmlUrl"];
        add.htmlUrl=[element objectForKey:@"id"];
        [subscriptions addObject:add];
        [add release];
}
2 голосов
/ 26 августа 2011

Вам нужно инициализировать свой SubscriptionArray. т.е.

SubscriptionArray *add = [SubscriptionArray new];
...