Приложение перестает работать после добавления messageUI.framework

Приложение перестает работать после добавления messageUI.framework

У меня создано полностью работающее приложение, и я хочу добавить несколько новых функций. Я добавил messageUI.framework и это перестало работать. Если я удаляю Framework, он снова работает, но это не идея.

Я получил ошибку:

-[Account initWithCoder:]: unrecognized selector sent to instance 0x1cd953a0

У меня есть обычай NSObject называется аккаунт и я получаю ошибку при загрузке:

myAccounts = [[NSMutableArray alloc] init];
myAccounts = [NSKeyedUnarchiver unarchiveObjectWithFile:savePath]; //Crashes in this line

Когда это было ранее сохранено с:

[NSKeyedArchiver archiveRootObject:myAccounts toFile:savePath];

Может ли это быть вызвано некоторыми перекрывающимися переменными или чем-то в этом роде?

Заметки:

Account.h как:

#define kAccName                @"name"
#define kAccID                  @"identifier"
#define kAccInitAmount          @"initAmount"
#define kAccActive              @"active"

#import <Foundation/Foundation.h>
#import "Transfer.h"

@interface Account : NSObject

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *identifier;
@property (nonatomic) double initAmount;
@property (nonatomic) BOOL active;

- (id)initWithID:(NSString *)ident;

@end

А также Account.m является:

#import "Account.h"

@implementation Account
@synthesize name;
@synthesize identifier;
@synthesize initAmount;
@synthesize active;

- (id)init {
    self = [super init];
    if (self) {
        self.active = TRUE;
    }
    return self;
}

- (id)initWithID:(NSString *)ident {
    self = [super init];
    if (self) {
        self.active = TRUE;
        self.identifier = ident;
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super init]) {
    self.name           = [decoder decodeObjectForKey:kAccName];
    self.identifier     = [decoder decodeObjectForKey:kAccID];
    self.initAmount     = [decoder decodeDoubleForKey:kAccInitAmount];
    self.active         = [decoder decodeBoolForKey:kAccActive];
}
    return self;
}

- (void)encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:self.name             forKey:kAccName];
    [encoder encodeObject:self.identifier       forKey:kAccID];
    [encoder encodeDouble:self.initAmount       forKey:kAccInitAmount];
    [encoder encodeBool:self.active             forKey:kAccActive];
}

@end

1 ответ

Решение

Я только что столкнулся с этой проблемой, я не могу сказать вам точно, почему, но перенастроить ваш объект Учетной записи на любое другое имя, я использовал Учетные записи, и это работает. Что-то во время выполнения в MessageUI.framework сталкивается с именем вашего аккаунта.

Другие вопросы по тегам