小编Pet*_*wis的帖子

在哪里放置局部变量

我有一个视图,谁的方法被视图控制器中的加速度计更新调用.我需要多个方法来使用和更改某些变量,例如,一个方法初始化变量,另一个方法用每个加速更新更新它们的值.

我知道如果他们只在一种方法上使用我可以在该方法中声明它们并且没问题.但是因为它们在多种方法中使用,所以我一直在实现文件的顶部声明它们,但不是我认为相信错误的静态.在Apple的一些示例代码中,他们总是在接口文件中声明这些代码.这样做的最佳方式是什么?为什么?

我目前的方法:

@implementation

int foo;

备选方案1:

@implementation

static int foo;

备选方案2:

@interface {

int foo;

谢谢,

iphone cocoa cocoa-touch objective-c

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

Mac OS Lion和Sandboxing

我正在为Mac OS开发一个文件管理器应用程序,我想知道Mac OS的新沙盒功能会产生什么影响.

有经验吗?

谢谢

macos cocoa sandbox osx-lion

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

释放对象的问题

我有这个代码:

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)

cocoa cocoa-touch objective-c

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

标签 统计

cocoa ×3

cocoa-touch ×2

objective-c ×2

iphone ×1

macos ×1

osx-lion ×1

sandbox ×1