簡體   English   中英

新手問題:iPhone SDK的NSOperation

[英]Newbie question: NSOperation for iphone SDK

嗨,我對NSOperation遇到了一些問題。 我總是在“ self = [super init];”處出錯。 (已經使用斷點找到了它)它總是一直返回“程序接收到的信號:EXC_BAD_ACCESS”

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

和.m

//AddThread.m
#import“ AddThread.h”
@implementation AddThread
@synthesize str;
-(id)initWithString:(NSString *)tmpStr
{
自我= [超級初始化];
如果(self!= nil)
{
self.str = tmpStr;
}
// NSLog(self);
// [super init];
返回自我
}
-(無效)主要
{
NSLog(self.str);
}
-(void)dealloc {
[str release];
str = nil;
[super dealloc];
}
@結束

好吧,我堅持了一段時間,如果可能的話,文章介紹了NSoperation的基本示例嗎?

在您的主要方法中,您正在調用NSLog(self.str) -雖然如果您傳入的對象是字符串,這將起作用,但是如果您繼續嘗試記錄其他對象,則它將不起作用。 NSLog將格式字符串作為參數。 如果您只是像在某些注釋代碼中那樣處理NSLog(self) ,而self不是字符串,則它將崩潰,因為它需要一個字符串。 您應該執行NSLog(@"self: %@", self) ,%@將打印出對象description方法返回的字符串。

除此之外,您的init方法看起來還不錯,您究竟如何創建該對象的實例? 您可以顯示該代碼嗎? 問題可能出在這里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM