シングルトンオブジェクトである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の...
派生データを削除して再インデックスを作成しようとしましたが、再度クリーンアップして再コンパイルしましたか?不要なファイル破損のようなものは何も起こっていないと確信していますか?また、完全なプロジェクトファイルをコピーして、もう一度試してみてください... – user387184
最初に表示されているエラーは、投稿したコードに存在しないinitializeメソッドからのものです。 – Danra
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