我有一个类在其内部实现中使用常量,但我想限制这些常量的可见性.为什么PHP不允许私有常量?有没有另一种方法来实现这一点,或者PHP试图阻止某些类型的设计失误我不知道?
如果我在类别实现中使用objc_setAssociatedObject/objc_getAssociatedObject将模拟实例变量存储在setter方法中,那么我将如何访问getter方法中的键,因为setter方法中声明的任何变量都不在getter方法的范围内?
编辑:为了澄清,如果我使用以下模式,我应该在哪里声明STRING_KEY,以便我可以在setter和getter方法中使用它.
@interface NSView (simulateVar)
-(void)setSimualtedString:(NSString *)myString;
-(NSString *)simulatedString;
@end
@implementation NSView (simulateVar)
-(void)setSimualtedString: (NSString *)myString
{
objc_setAssociatedObject(self, &STRING_KEY, myString, OBJC_ASSOCIATION_RETAIN);
}
-(NSString *)simulatedString
{
return (NSString *)objc_getAssociatedObject(self, &STRING_KEY);
}
@end
Run Code Online (Sandbox Code Playgroud) 当init内部出现故障时,我是否应该始终释放self,或者如果我先初始化实例变量,我是否应该这样做?
换句话说,这种模式是否有效?有没有时间我不应该在init方法中释放self,或者我应该假设如果控制流进入init,self至少有一个保留计数为1?
- (id)init
{
if ((self = [super init]) == nil)
{
[self release];
return nil;
}
//do some init stuff
if (somethingFailed)
{
[self release];
return nil;
}
return self;
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个旨在从localhost管理的站点,但包含向Internet或本地网络用户公开数据的页面.我可以依赖PHP的$ _SERVER ['REMOTE_ADDR']作为将用户标识为localhost的安全/可靠方式吗?谢谢!
编辑: 为了澄清,我只关心确定请求是否来自localhost(也许有更好的方法).
有时在PHP中,当我需要为变量分配一个大的字符串文字时,我将引用的字符串分成多行,这样就可以在不向右滚动300个字符的情况下读取它.我的问题是PHP在应用程序中呈现时在实际字符串中包含换行符.有没有办法逃避新行或是否有更好的方法在多行上表达字符串文字?我知道我可以使用连接,但我希望有一个更优雅的解决方案.
如果重要的话,在Debian上运行.
我有一个System类,可以返回指向Editor类的指针.该编辑器类的实例化内系统类,并通过指针系统的私有变量.所述编辑器类实质上充当备用接口系统的内部数据结构.
我的问题:是否存在允许我禁止直接实例化Editor类的设计模式,但仍以某种方式在System中实例化它?
谢谢.
我正在使用Sass 3.1.20
test.sass:
#hello
width: 100px
display:none
background: red
Run Code Online (Sandbox Code Playgroud)
%> sass test.sass
#hello {
width: 100px;
background: red; }
Run Code Online (Sandbox Code Playgroud)
为什么要跳过显示属性?