新手问题:适用于iphone SDK的NSOperation

时间:2010-02-18 10:22:22

标签: iphone nsoperation

您好我在NSOperation遇到了一些问题。 我总是在“self = [super init]”中得到错误;“ (已经使用断点来找到这个) 它始终返回“程序接收信号:EXC_BAD_ACCESS”

  

// AddThread.h   
@interface AddThread:NSOperation   
{   
NSString * str;   
}   
@property(非原子,保留)NSString * str;   
- (id)initWithString:(NSString *)tmpStr;   
@end

和.m

  

// AddThread.m   
#import“AddThread.h”   
@implementation AddThread   
@synthesize str;   
- (id)initWithString:(NSString *)tmpStr   
{   
self = [super init];   
如果(自我!=无)   
{   
self.str = tmpStr;   
}   
// NSLog(个体经营);   
// [super init];   
回归自我;   
}   
- (无效)主要   
{   
NSLog(self.str);   
}   
- (void)dealloc {   
[str release];   
str = nil;   
[超级dealloc];   
}   
@end

好吧,我坚持这一点,如果可能的任何资源,文章的事情为NSoperation的基本例子?

1 个答案:

答案 0 :(得分:1)

在main方法中,您正在调用NSLog(self.str) - 如果您传入的对象是字符串,这将起作用,如果您继续尝试并记录其他对象,它将无法工作。 NSLog将格式字符串作为参数。如果你只是像NSLog(self)那样在你的一些注释代码中,并且self不是一个字符串,那么它会崩溃,因为它需要一个字符串。您应该NSLog(@"self: %@", self)%@将打印出对象description方法返回的字符串。

除此之外,你的init方法看起来很好,你究竟是如何创建这个对象的实例的呢?你能展示一下代码吗?问题可能出在那里。