2011-09-16 16 views
1

シングルトンオブジェクトであるFHSUploadManagerというNSObjectがあります。すべてが機能しているように見えますが、今日私はいくつかの奇妙なメッセージを受け取りました。インスタンスに送信された認識できないセレクタ

2011-09-16 13:26:05.892 FHMedia[6038:6903] -[FHSUploadManager initialize]: unrecognized selector sent to instance 0x6b96900 

2011-09-16 13:26:06.975 FHMedia[6038:6903] *** NSInvocation: warning: object 0xb0352cb8 of class 'úè0°8s†Gà–!Ä' does not implement methodSignatureForSelector: -- trouble ahead 

2011-09-16 13:26:06.983 FHMedia[6038:6903] *** NSInvocation: warning: object 0xb0352cb8 of class 'úè0°8s†Gà–!Ä' does not implement doesNotRecognizeSelector: -- abort 

壊れているようには見えませんが、これらのメッセージには私の心配があります。誰もこれを見たことがありますか?誰でもこれをデバッグする方法を知っていますか?

私はプライバシーとスペースのためにいくつかの方法を取り上げました。ここで

は、ここに私のFHSUploadManager.h

@class ListObject; 
@class MergedItem; 
@class ServerSync; 
@class AppDelegate_Shared; 
@class RegisteredUser; 
@interface FHSUploadManager : NSObject { 
    NSMutableArray *uploadItems; 

    NSMutableArray *objectIds; 

    // KVO values 
    BOOL isSyncing; 
    NSString *uploadingStatus; 
    ListObject *uploadObject; 

    AppDelegate_Shared *appDelegate; 
    ServerSync *sync; 
} 

@property (assign) BOOL isSyncing; 
@property (assign) NSString *uploadingStatus; 
@property (assign) ListObject *uploadObject; 

@property (assign) AppDelegate_Shared *appDelegate; 

@end 

あるFHSUploadManager.m

#import "FHSUploadManager.h" 
#import "ListObject.h" 

#import "Reachability.h" 
#import "ServerSync.h" 
#import "AppDelegate_Shared.h" 

#import "ItemAttribute.h" 
#import "CoreItem.h" 
#import "Media.h" 

#import "MergedItem.h" 
#import "WebServices.h" 

#import "NSManagedObject+XML.h" 
#import "NSNotificationCenter+MainThread.h" 

#import "PowerMeXMLParser.h" 
#import "RegisteredUser.h" 

#import "TBXML.h" 

static FHSUploadManager* sharedInstanceFHSUploadManager = nil; 

@implementation FHSUploadManager 

@synthesize isSyncing; 
@synthesize uploadingStatus; 
@synthesize uploadObject; 
@synthesize appDelegate; 

- (void)dealloc { 
    [uploadItems release]; 
    [uploadingStatus release]; 
    [uploadObject release]; 

    [objectIds release]; 
    [sync release]; 

    [super dealloc]; 
} 

-(void)startUpload 
{ 
    if(!isSyncing) 
    { 
     self.isSyncing = YES; 
     [self performSelectorInBackground:@selector(uploadingInBackground) withObject:nil]; 
    } 
} 

// !!! Other methods and not added here. !!! 


#pragma mark - Apple Boiler Plate Singleton - 
+ (FHSUploadManager*)sharedInstance { 

    @synchronized(self) 
    { 
     if (sharedInstanceFHSUploadManager == nil) { 
      sharedInstanceFHSUploadManager = [[super allocWithZone:NULL] init]; 

      sharedInstanceFHSUploadManager.isSyncing = NO; 
      sharedInstanceFHSUploadManager.appDelegate = (AppDelegate_Shared*)[[UIApplication sharedApplication] delegate]; 
     } 
    } 
    return sharedInstanceFHSUploadManager; 
} 

+ (id)allocWithZone:(NSZone *)zone { 
    return [[self sharedInstance] retain]; 
} 

- (id)copyWithZone:(NSZone *)zone { 
    return self;  
} 

- (id)retain { 
    return self; 
} 

- (NSUInteger)retainCount { 
    return NSUIntegerMax; //denotes an object that cannot be released 
} 

- (void)release { 
    //do nothing  
} 

- (id)autorelease { 
    return self;  
} 


@end 

は、それはそれが帰ってきた

を消えていたというコメントの後の更新です!私は仲間のプログラマーと話をし、彼は私がいくつかの記憶を踏んでいるかどうか疑問に思っています。だから私はもう少し詳しく見ていきます。あなたはそれが解放されると、あなたがオブジェクトにアクセスすることができるNSObjectの...

+1

派生データを削除して再インデックスを作成しようとしましたが、再度クリーンアップして再コンパイルしましたか?不要なファイル破損のようなものは何も起こっていないと確信していますか?また、完全なプロジェクトファイルをコピーして、もう一度試してみてください... – user387184

+0

最初に表示されているエラーは、投稿したコードに存在しないinitializeメソッドからのものです。 – Danra

+0

initializeメソッドは、NSObjectのメソッドです。クラスが最初に作成されたときに呼び出されます。 http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/clm/NSObject/initialize – NixonsBack

答えて

0

が見えます。

FHSUploadManager deallocメソッドにブレークポイントを追加します。

+0

それも私が思ったことですが、それはあります。 – NixonsBack

+1

シングルトンはどのように実装していますか?いくつかのコードを投稿してください... – Macmade

-2

から継承されていないよう

+0

私のオブジェクトはデアロックではありません。 – NixonsBack

0

FHSUploadManagerオブジェクトクラスの割り当てが解除されています。スキームの編集ゾンビオブジェクトを有効にします。割り当て解除されたインスタンスのログが取得されます。

関連する問題