相关疑难解决方法(0)

为什么我不应该在init/dealloc中使用Objective C 2.0访问器?

@ mmalc的 响应这个问题,他指出:"一般来说,你应该使用访问中的dealloc方法(或init)." 为什么mmalc这样说?

我能想到的唯一真正原因是性能和避免@dynamic制定者的未知副作用.

讨论?

cocoa objective-c

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

Objective-C Dot语法和Init

我已经阅读了一些片段,提到你不应该在init或dealloc方法中使用dot-notation.但是,我似乎永远无法找出原因.一篇文章顺便提到它与KVO有关,但没有更多.

@interface MyClass : NSObject {
    SomeObject *object_;
}
@property (nonatomic, retain) SomeObject *object;
@end
Run Code Online (Sandbox Code Playgroud)

这个实现不好?

@implementation MyClass 

@synthesize object = object_;

- (id)initWithObject:(SomeObject *)object {
    if (self = [super init]) {
        self.object = object;
    }

    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

但这很好吗?

@implementation MyClass 

@synthesize object = object_;

- (id)initWithObject:(SomeObject *)object {
    if (self = [super init]) {
        object_ = [object retain];
    }

    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

在init中使用点符号有哪些缺陷?

syntax objective-c

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

dealloc中的属性:release然后设置为nil?或者简单地发布

我是Objective-C(和stackoverflow)的新手,我有点关于属性的最佳实践.

我的理解是,当你完全使用属性时,可以通过释放它们来避免错误,然后立即设置为nil,以便后续消息也返回nil而不是异常.

[myProperty release],myProperty = nil;

但是,当涉及到"复制"和"保留"属性的dealloc时,是否需要同时执行这两个操作?或做一个简单的

[myProperty发布]剪了吗?另外,我是否正确,我不需要在dealloc中释放'assign'属性?

谢谢!

objective-c

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

标签 统计

objective-c ×3

cocoa ×1

syntax ×1