【发布时间】:2010-04-02 08:59:10
【问题描述】:
我的@interface 中有这个
struct track currentTrack;
struct track previousTrack;
int anInt;
由于这些不是对象,我不必像 int* anInt 那样拥有它们,对吗? 并且如果设置非对象值如int、boolean等,我不必释放旧值的权利(假设非GC环境)?
结构包含对象:
typedef struct track {
NSString* theId;
NSString* title;
} *track;
我这样做对吗?
最后,我像这样访问结构:
[currentTrack.title ...];
currentTrack.theId = @"asdf"; //LINE 1
我也在手动管理结构的内存(来自 setter),如下所示:
[currentTrack.title autorelease];
currentTrack.title = [newTitle retain];
如果我对垃圾收集的理解正确,我应该可以放弃它并像第 1 行(上图)那样设置它?
还有垃圾回收,我不需要 dealloc 方法,对吧? 如果我使用垃圾收集,这是否意味着它只能在 OS 10.5+ 上运行?在我切换到垃圾收集代码之前我还应该知道什么?
抱歉,问题太多了。对 Objective-c 和桌面编程非常陌生。
谢谢
【问题讨论】:
标签: objective-c cocoa pointers garbage-collection