我有一个视图,谁的方法被视图控制器中的加速度计更新调用.我需要多个方法来使用和更改某些变量,例如,一个方法初始化变量,另一个方法用每个加速更新更新它们的值.
我知道如果他们只在一种方法上使用我可以在该方法中声明它们并且没问题.但是因为它们在多种方法中使用,所以我一直在实现文件的顶部声明它们,但不是我认为相信错误的静态.在Apple的一些示例代码中,他们总是在接口文件中声明这些代码.这样做的最佳方式是什么?为什么?
我目前的方法:
@implementation
int foo;
备选方案1:
@implementation
static int foo;
备选方案2:
@interface {
int foo;
谢谢,
我正在为Mac OS开发一个文件管理器应用程序,我想知道Mac OS的新沙盒功能会产生什么影响.
有经验吗?
谢谢
我有这个代码:
Entry.h
#import <Foundation/Foundation.h>
@interface Entry : NSObject {
id object;
SEL function;
}
@property (retain) id object;
@property (assign) SEL function;
-(Entry*) initWithObject:(id)object selector:(SEL)function;
@end
Run Code Online (Sandbox Code Playgroud)
Entry.m
#import "Entry.h"
@implementation Entry
@synthesize object;
@synthesize function;
-(Entry*) initWithObject:(id)obj selector:(SEL)sel {
self = [super init];
[self setObject:obj];
[self setFunction:sel];
return self;
}
-(void) dealloc {
[super dealloc];
if ([self object] != nil)
[[self object] release];
}
@end
Run Code Online (Sandbox Code Playgroud)
当我这样做时:
Entry *hej = [Entry alloc];
[hej release];
Run Code Online (Sandbox Code Playgroud)
我明白了:
objc[2504]: FREED(id): message object sent to …
Run Code Online (Sandbox Code Playgroud)