ARC Semantische Problem: Keine sichtbaren @Schnittstelle für die Klasse deklariert die selector

Ziemlich grundlegende Dinge, aber ich bin nicht in der Lage zu beheben, wo das problem ist. In meinem Projekt habe ich eine Klasse namens "TheFeedStore" mit folgenden zwei Methoden:

- (BOOL)hasItemBeenRead:(RSSItem *)item
{
   ............
}

- (void)markItemAsRead:(RSSItem *)item
{
  .........
}

Ich bin mit der folgenden Methode der Klasse, so dass andere Klassen zugreifen kann, können diese Methoden verwenden:

+ (TheFeedStore *) sharedStore
{
    static TheFeedStore *feedStore = nil;

    if (!feedStore) {
        feedStore = [[TheFeedStore alloc] init];
    }
    return feedStore;
}

In einem meiner anderen Klasse, kann ich leicht Zugang zu den oben genannten Methoden schreiben

if ([[TheFeedStore sharedStore] hasItemBeenRead:item]) 

oder

[[TheFeedStore sharedStore] markItemAsRead:entry];

Aber in einer anderen Klasse, wenn ich versuche, auf diese Methoden in einer ähnlichen Art und Weise, erhalte ich die Fehlermeldung "No visible @interface for 'TheFeedStore' erklärt der Selektor 'hasItemBeenRead:"

1) habe ich importiert TheFeedStore.h-Datei in die Klassen, ich bin
der Zugriff auf diese Methoden von TheFeedStore Klasse.

2) ich habe etwa 10 mal und es ist kein Tippfehler.

3) Die Methoden, die ich bin, Zugriff auf sind auch deklariert in der header-Datei
TheFeedStore.h

UPDATE: Einfach zu checken, ich habe erklärt eine andere test-Methode in TheFeedStore.h, Gleiches Ergebnis, eine Klasse Zugriff auf die neu erstellte Methode, während die restlichen drei Klassen nicht.

UPDATE: ich habe versucht, die Schaffung von mehr Methoden in der TheFeedStore.h nur für die Behandlung dieses Problems. Die neuen Methoden sind auch nicht zugänglich, von den anderen Klassen. Aber wenn der Rückgabetyp dieser neuen Methoden ist (RSSChannel*), ist ein weiteres model-Klasse in meinem Projekt, als Sie zugänglich werden. Wenn Ihr Rückgabetyp ist im Gegensatz zu manchen anderen Klasse wie (void) und (BOOL) dann sind Sie nicht zugänglich. Hier ist mein TheFeedStore.h https://gist.github.com/jessicamoore112/5558473

Hast du #import die Klasse in die Klasse, wo du immer diese Fehlermeldung?
natürlich habe ich importiert die Klasse. Es erkennt nicht die Methoden, auch "sharedStore-Klasse" - Methode kommt in der AutoVervollständigen-Liste, wenn ich den Typ [[TheFeedStore sharedStore]
was haben Sie in TheFeedStore.h-Datei ? Haben Sie erklärt, diese Instanz-Methoden .h ?
ja, diese Methoden sind deklariert in der header-Datei als gut
Er wurde mit der Bestätigung, dass Sie nicht tun, dass, nicht was darauf hindeutet, dass Sie sollten.

InformationsquelleAutor AJ112 | 2013-05-08

Schreibe einen Kommentar