で「SEL」から「NSString * _Nonnull」への非Objective-Cポインタ型の暗黙的な変換が許可されていません。他の5関連のquestionsも同じエラーまたはsyntaxを読み込んでいます。私が理解している限り、私の質問に関連するものは何もありませんでした。ARC
-(void) createCopyOfDBIfNeeded{
NSFileManager *fileManager= [NSFileManager defaultManager];
BOOL isDatabaseInCache = [fileManager fileExistsAtPath:@selector(getDBFile)];
if (isDatabaseInCache) {
return;
}
}
// getDBFile方法:
-(NSString *) getDBFile {
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString * DBPath = [paths firstObject];
NSString * DBFile = [DBPath stringByAppendingPathComponent:@"productDBFile.db"];
return DBFile;
}
エラーが@selector(getDBFile)
に関連しているようです。 代わりに[self getDBFile]を使用すると、すべて正常に動作しますが、@selectorをどのように、またどこで適切に使用するか、エラー/警告の意味はここで学びたいと思います。あなたが唯一のセレクターを取るメソッドにセレクタを渡すことができIncompatible pointer types sending 'SEL' to parameter of type
あなたはこれを参照することもできます。https://developer.apple.com/library/mac/documentation/General/Conceptual/DevPedia -CocoaCore/Selector.html – jtbandes
セレクタが何であるか分からず、関数の理解がほとんどなく、呼び出す方法がわからないようです。多分、良いObjective-Cプライマーが順番にあるでしょう。 – Avi
@ asma22 Objective-Cのメソッドは、引数を介してリファレンスによって返すものの非常に特殊なパターンに従わない限り、決して 'get'という接頭辞を付けてはいけないことに注意してください。 (混乱の共通点 - 言語を歓迎して楽しい!) – bbum