我试图为我的模型类创建一个通用的编码器和解码器.我试图找到一种方法来为所有类型的属性调用"编码方法",无论是对象(NSString,NSNumber,NSArray等)还是原始类型.我看到有人在做以下事情.我想知道这是否是一种正确的方法.
属性:
@property (assign,nonatomic) int integerP;
@property (assign,nonatomic) float floatP;
@property (assign,nonatomic) BOOL boolP;
Run Code Online (Sandbox Code Playgroud)
Enconder和解码器代码:
- (void)encodeWithCoder:(NSCoder *)encoder
{
id object2 = [self valueForKey:@"integerP"];
id object3 = [self valueForKey:@"floatP"];
id object4 = [self valueForKey:@"boolP"];
[encoder encodeObject:object2 forKey:@"integerP"];
[encoder encodeObject:object3 forKey:@"floatP"];
[encoder encodeObject:object4 forKey:@"boolP"];
//[self setValue:[NSNumber numberWithInt:90] forKey:@"heightR"];
//NSLog(@"%@",[self valueForKey:@"heightR"]);
}
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super init];
if( self != nil )
{
id object2 = [decoder decodeObjectForKey:@"integerP"];
[self setValue:object2 forKey:@"integerP"];
id object3 = [decoder decodeObjectForKey:@"floatP"];
[self …Run Code Online (Sandbox Code Playgroud) 我在两个偏执表(用户和电子邮件)之间有一个关系,并且该关系上有 onDelete: 'cascade' 选项( Email.belongsTo(User, onDelete:'cascade') )。
问题是,当我删除用户时,他的电子邮件不会被级联删除。
是我写错了还是sequelize有bug?
我在postgres数据库上使用sequelize 2.0.0-rc2。
谢谢。
PS:请看一下我用于测试的代码:
var Sequelize = require('sequelize')
, sequelize = new Sequelize('test', 'test', 'test', {dialect: 'postgres'});
var User = sequelize.define('User', {
username: Sequelize.STRING,
birthday: Sequelize.DATE
}, {paranoid: true}); //Without paranoid the code works fine
var Email = sequelize.define('Email', {
email: Sequelize.STRING,
primary: Sequelize.BOOLEAN
}, {paranoid: true}); //Without paranoid the code works fine
Email.belongsTo(User, {onDelete: 'cascade'});
sequelize.sync().success(function () {
var userCreatedInstance = null;
var deletedUserId …Run Code Online (Sandbox Code Playgroud)