私のプロジェクトはarc または cocoaNSString
ではないため、コードで使用したくありませんが、機能していないようです。Xcode が表示されます"ERROR: (CFStringGetTypeID() != CFGetTypeID(cfStringRef)) (i = 0)"
。CFString はどのように作成すればよいですか?
コードは次のとおりです。
const char *path = m_directory.AsCharPtr();
CFStringRef directory = CFStringCreateWithCString(kCFAllocatorDefault,path,kCFStringEncodingUTF8);
CFArrayRef pathsToWatch = CFArrayCreate(kCFAllocatorMalloc, (const void **)directory, 1, NULL);
void *appPointer = this;
FSEventStreamContext context = {0, appPointer, NULL, NULL, NULL};
FSEventStreamRef stream;
CFAbsoluteTime latency = 1.0; /* Latency in seconds */
/* Create the stream, passing in a callback */
stream = FSEventStreamCreate(NULL, &fsevents_callback,
&context,
pathsToWatch,
kFSEventStreamEventIdSinceNow, /* Or a previous event ID */
latency,
kFSEventStreamCreateFlagFileEvents /* Flags explained in reference */
);