Jan*_*ann 1 sdk singleton constants nsstring ios
我有一个最奇怪的错误!在Xcode中我有一个单例,定义如下(文件是:) MyGizmoClass.h:
NSString *plistPath;
NSString *dataDomain;
NSString *pathToChatScript;
NSString *pathToUpdates;
Run Code Online (Sandbox Code Playgroud)
和
@property (nonatomic,retain) NSString *plistPath;
@property (nonatomic,retain) NSString *dataDomain;
@property (nonatomic,retain) NSString *pathToChatScript;
@property (nonatomic,retain) NSString *pathToUpdates;
Run Code Online (Sandbox Code Playgroud)
我有一个Constants.h文件(我#import早在我的.pch文件中),其中包含:
#define kUserPlistName @"userPlist.plist"
#define kDataDomain @"http://www.jann.com/";
#define kPathToChatScript @"path/top/chatscript.cgi";
#define kPathToupdates @"pathtoupdates/";
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止,这么好.
我的.pch文件中的顺序是这样的:
#import "Constants.h"
#import "MyGizmoClass.h"
Run Code Online (Sandbox Code Playgroud)
然后在Constants.h文件中我这样做:
#import "FileFunctions.h"
Run Code Online (Sandbox Code Playgroud)
好的,很好的设置.这应该工作,一个有3个NSStrings的单身人士.但是当我尝试这样做时,FileFunctions.h我在编译器中遇到一个奇怪的错误:
FileFunctions.h
[myGizmoClass setDataDomain: kDataDomain];
[myGizmoClass setPathToChatScript: kPathToChatScript];
[myGizmoClass setPathToUpdates: kPathToupdates];
[myGizmoClass setPlistPath:[[myGizmoClass libraryDir] stringByAppendingPathComponent:kUserPlistName]];
Run Code Online (Sandbox Code Playgroud)
编译结果
预期']'之前;
到底是怎么回事?我得到这个3次...一个用于setDataDomain,一个用于setPathToChatScript,一个用于setPathToUpdates.但没有错误kUserPlistName.当我这样做时,FileFunctions.h一切都很顺利:
[myGizmoClass setDataDomain: @"http://www.jann.com/"];
[myGizmoClass setPathToChatScript: @"path/top/chatscript.cgi"];
[myGizmoClass setPathToUpdates: @"pathtoupdates/"];
Run Code Online (Sandbox Code Playgroud)
编译结果
一切都很好.
我无法弄清楚这一点.后来(这下面4行)我做了以下几点:
[myGizmoClass setPlistPath:[[myGizmoClass libraryDir] stringByAppendingPathComponent:kUserPlistName]];
Run Code Online (Sandbox Code Playgroud)
这是有效的!为什么要削弱kUserPlistName工作,但kDataDomain不会?这可能很容易......但我不能,因为我的生活,看到它!
附录
我发现无论我在哪里使用kDataDomain,setPathToChatScript或者setPathToUpdates在代码中我都得到了相同的结果
编译结果
预期']'之前;
错误!:(
谢谢!
不要在你的#defines中加入分号.
编译器完全替换你所拥有的,所以这些是等价的:
[myGizmoClass setPathToUpdates: kPathToupdates];
[myGizmoClass setPathToUpdates: @"pathtoupdates/";]; // obvious syntax error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |