У меня самая странная ошибка! В XCode у меня есть синглтон со следующим определенным (файл: MyGizmoClass.h
):
NSString *plistPath;
NSString *dataDomain;
NSString *pathToChatScript;
NSString *pathToUpdates;
и
@property (nonatomic,retain) NSString *plistPath;
@property (nonatomic,retain) NSString *dataDomain;
@property (nonatomic,retain) NSString *pathToChatScript;
@property (nonatomic,retain) NSString *pathToUpdates;
У меня есть файл Constants.h
(который я #import
в начале моего файла .pch), который содержит:
#define kUserPlistName @"userPlist.plist"
#define kDataDomain @"http://www.jann.com/";
#define kPathToChatScript @"path/top/chatscript.cgi";
#define kPathToupdates @"pathtoupdates/";
Хорошо, пока, все хорошо.
Порядок в моем файле .pch таков:
#import "Constants.h"
#import "MyGizmoClass.h"
, а затем в файле Constants.h
я делаю это:
#import "FileFunctions.h"
Хорошо, тонкая настройка. Это должно работать, синглтон с 3 NSStrings. Но когда я пытаюсь сделать это в FileFunctions.h
, я получаю странную ошибку в компиляторе:
FileFunctions.h
[myGizmoClass setDataDomain: kDataDomain];
[myGizmoClass setPathToChatScript: kPathToChatScript];
[myGizmoClass setPathToUpdates: kPathToupdates];
[myGizmoClass setPlistPath:[[myGizmoClass libraryDir] stringByAppendingPathComponent:kUserPlistName]];
Результаты компиляции
Ожидается ']' раньше;
Что происходит? Я получаю это 3 раза ... один для setDataDomain, один для setPathToChatScript и один для setPathToUpdates. Но нет ошибки на kUserPlistName
. Когда я делаю это в FileFunctions.h
, тогда все хорошо:
[myGizmoClass setDataDomain: @"http://www.jann.com/"];
[myGizmoClass setPathToChatScript: @"path/top/chatscript.cgi"];
[myGizmoClass setPathToUpdates: @"pathtoupdates/"];
Результаты компиляции
Все хорошо.
Я не могу понять это. Позже (на 4 строки ниже) я делаю следующее:
[myGizmoClass setPlistPath:[[myGizmoClass libraryDir] stringByAppendingPathComponent:kUserPlistName]];
И ТО работает! Почему подпункт kUserPlistName
сработает, а kDataDomain
не сработает? Это, наверное, НАСТОЛЬКО легко ... но я не могу, на всю жизнь, увидеть это!
ADDENDUM
Я обнаружил, что ВЕЗДЕ, где я использую kDataDomain
, setPathToChatScript
или setPathToUpdates
в коде, я получаю тот же
Результаты компиляции
Ожидается ']' раньше;
Ошибка! (
Спасибо!