小编Rob*_*Rob的帖子

如果父项有子记录,如何防止删除父项?

我已经查看了Ruby on Rails指南,我似乎无法弄清楚如果有父级记录,如果有人删除父记录.例如.如果我的数据库有CUSTOMERS并且每个客户可以有多个ORDERS,我想阻止有人在数据库中有任何订单时删除客户.如果客户没有订单,他们应该只能删除客户.

在定义模型之间的关联以强制执行此行为时,有没有办法?

model ruby-on-rails associations

45
推荐指数
2
解决办法
2万
查看次数

"自我"是否必要?

是否在Objective-C中使用"自我"或者只是一个好习惯?我一直没有使用它而根本没有使用它,我似乎没有注意到任何差异.反正不是暗示吗?

iphone objective-c

6
推荐指数
1
解决办法
600
查看次数

如何在PostgreSQL 8.2中动态使用TG_TABLE_NAME?

我试图在PostgreSQL 8.2中编写一个触发器函数,它将动态使用TG_TABLE_NAME来生成和执行SQL语句.我可以为PostgreSQL的更高版本找到各种各样的例子,但由于一些要求,我被困在8.2上.这是我的功能,因为它有效,但几乎没有动态:

CREATE OR REPLACE FUNCTION cdc_TABLENAME_function() RETURNS trigger AS $cdc_function$
        DECLARE 
        op  cdc_operation_enum;
    BEGIN
        op = TG_OP;

        IF (TG_WHEN = 'BEFORE') THEN
            IF (TG_OP = 'UPDATE') THEN
                op = 'UPDATE_BEFORE';
            END IF;

            INSERT INTO cdc_test VALUES (DEFAULT,DEFAULT,op,DEFAULT,DEFAULT,OLD.*); 
        ELSE
            IF (TG_OP = 'UPDATE') THEN
                op = 'UPDATE_AFTER';
            END IF;

            INSERT INTO cdc_test VALUES (DEFAULT,DEFAULT,op,DEFAULT,DEFAULT,NEW.*); 
        END IF;

        IF (TG_OP = 'DELETE') THEN
            RETURN OLD;
        ELSE
            RETURN NEW;
        END IF;
    END;
Run Code Online (Sandbox Code Playgroud)

这是当前编写的方式,我将不得不为每个表编写一个单独的触发器函数.我想使用TG_TABLE_NAME来动态构建我的INSERT语句,并在其前面加上'cdc_',因为所有表都遵循相同的命名约定.然后我可以让每个表调用的每个触发器只有一个函数.

sql postgresql triggers function plpgsql

6
推荐指数
1
解决办法
8878
查看次数

他们为什么用这种方式初始化指针?

在我阅读的几乎所有书籍和我经历的例子中,我看到指针以这种方式初始化.假设我有一个我想初始化的类变量NSString*myString.我几乎总会看到这样做:

-(id)init {
    if (self = [super init]) {
        NSString *tempString = [[NSString alloc] init];
        self.myString = tempString;
        [tempString release];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能做以下事情呢?

-(id)init {
    if (self = [super init]) {
        self.myString = [[NSString alloc] init];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么一开始就需要额外的tempString,但我可能会在这里遗漏内存管理.我想要做的事情是可接受的还是会引起某种泄漏?我已经阅读了developer.apple.com上的内存管理指南,除非我只是遗漏了一些内容,否则我看不出有什么区别.

iphone memory-leaks memory-management objective-c

3
推荐指数
1
解决办法
297
查看次数

'CGPoint'之前的预期说明符 - 限定符列表

我的项目编译并运行正常,除非我尝试编译我的单元测试包,它在下面用" 在'CGPoint'之前的预期说明符 - 限定符列表' "第5行的错误进行轰炸:

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

@interface WorldObject : NSObject {
    CGPoint coordinates;
    float altitude;
    NSMutableDictionary *forces;
}

@property (nonatomic) CGPoint coordinates;
@property (nonatomic) float altitude;
@property (nonatomic,retain) NSMutableDictionary *forces;

- (void)setObject:(id)anObject inForcesForKey:(id)aKey;
- (void)removeObjectFromForcesForKey:(id)aKey;
- (id)objectFromForcesForKey:(id)aKey;
- (void)applyForces;

@end
Run Code Online (Sandbox Code Playgroud)

我确保我的单元测试包是我的WorldObject.m的目标,它的标题是在我的测试标题中导入的:

#define USE_APPLICATION_UNIT_TEST 1

#import <SenTestingKit/SenTestingKit.h>
#import <UIKit/UIKit.h>
#import "Force.h"
#import "WorldObject.h"


@interface LogicTests : SenTestCase {
    Force *myForce;
    WorldObject *myWorldObject;
}

@end
Run Code Online (Sandbox Code Playgroud)

unit-testing objective-c iphone-sdk-3.0

3
推荐指数
1
解决办法
2040
查看次数

为什么我不能通过setter初始化一个类?

如果我有一个名为Tires的自定义类:

#import <Foundation/Foundation.h>

@interface Tires : NSObject {
@private
     NSString *brand;
     int size;
}

@property (nonatomic,copy) NSString *brand;
@property int size;

- (id)init;
- (void)dealloc;

@end
=============================================

#import "Tires.h"

@implementation Tires

@synthesize brand, size;

- (id)init {
     if (self = [super init]) {
          [self setBrand:[[NSString alloc] initWithString:@""]];
          [self setSize:0];
     }
     return self;
}

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

@end
Run Code Online (Sandbox Code Playgroud)

我在View Controller中合成了一个setter和getter:

#import <UIKit/UIKit.h>
#import "Tires.h"

@interface testViewController : UIViewController {
     Tires *frontLeft, *frontRight, *backleft, *backRight;
}

@property …
Run Code Online (Sandbox Code Playgroud)

getter setter objective-c

1
推荐指数
1
解决办法
359
查看次数