messageUI.framework を追加した後、アプリが動作しなくなる
完全に機能するアプリを作成しましたが、いくつかの新しい機能を追加したいと考えています。を追加しましたがmessageUI.framework
、動作しなくなりました。フレームワークを削除すると、再び機能しますが、これは考えではありません。
私が受け取ったエラーは次のとおりです。
-[Account initWithCoder:]: unrecognized selector sent to instance 0x1cd953a0
Account という名前のカスタムがあり、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