簡體   English   中英

無法識別的選擇器已發送到實例

[英]unrecognized selector sent to instance

我有一個名為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

更新后評論說它不見了

回來了! 我與一位程序員程序員交談,他想知道我是否在踩一些內存。 因此,我將進一步研究。

FHSUploadManager對象類正在取消分配。 在“編輯方案”中,啟用“僵屍對象”。 您將獲得釋放實例的日志。

看起來您不是從NSObject繼承...

釋放對象后,您可能正在訪問它。

在FHSUploadManager dealloc方法上添加一個斷點。

暫無
暫無

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

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