nicht zulässig. Ich lese 5 andere ähnliche questions mit dem gleichen Fehler oder syntax. Soweit ich verstanden habe, hatte nichts etwas mit meiner Frage zu tun.Implizite Konvertierung eines Nicht-Objective-C-Zeigertyps 'SEL' in 'NSString * _Nonnull' ist mit ARC
-(void) createCopyOfDBIfNeeded{
NSFileManager *fileManager= [NSFileManager defaultManager];
BOOL isDatabaseInCache = [fileManager fileExistsAtPath:@selector(getDBFile)];
if (isDatabaseInCache) {
return;
}
}
// getDBFile Methode:
-(NSString *) getDBFile {
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString * DBPath = [paths firstObject];
NSString * DBFile = [DBPath stringByAppendingPathComponent:@"productDBFile.db"];
return DBFile;
}
Es scheint der Fehler @selector(getDBFile)
zusammenhängt. Wenn ich [self getDBFile] stattdessen alles funktioniert, aber ich möchte lernen, wie und wo @selector geeignet zu verwenden und was der Fehler/Warnung bedeutet hier.
Ich habe auch eine Warnung: Incompatible pointer types sending 'SEL' to parameter of type
Sie könnten diese lesen wollen: https://developer.apple.com/library/mac/documentation/General/Conceptual/DevPedia -CocoaCore/Selector.html – jtbandes
Es sieht so aus, als ob Sie keine Ahnung haben, was ein Selektor ist, und möglicherweise wenig Verständnis für Funktionen und wie man sie aufruft. Vielleicht ist ein guter Objective-C-Primer in Ordnung. – Avi
@ asma22 Beachten Sie, dass Methoden in Objective-C niemals mit "get" vorangestellt werden sollten, es sei denn, sie folgen einem sehr spezifischen Muster der Rückgabe von Objekten durch Referenz über die Argumente. (Gemeinsamer Punkt der Verwirrung - Willkommen in der Sprache und viel Spaß!). – bbum