【问题标题】:Newbie question: NSOperation for iphone SDK新手问题: NSOperation for iphone SDK
【发布时间】:2011-01-18 06:30:49
【问题描述】:

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

//AddThread.h
@interface AddThread : NSOperation
{
    NSString * str;
}
@property (nonatomic,retain) NSString * str;
-(id) initWithString:(NSString *) tmpStr;
@end

对于.m

//AddThread.m
#import "AddThread.h"
@implementation AddThread
@synthesize str;
- (id) initWithString:(NSString *)tmpStr
{
    self = [super init];
    if (self != nil)
    {
        self.str = tmpStr;
    }
    //NSLog(self);
    //[super init];
        return self;
}
- (void) main
{
    NSLog(self.str);
}
- (void) dealloc{
    [str release];
    str = nil;
    [super dealloc];
}
@end

好吧,我坚持了一段时间,如果可能的话,任何资源,文章的东西都是 NSoperation 的基本示例?

【问题讨论】:

    标签: iphone nsoperation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      相关资源
      最近更新 更多