最近,在通过类而不是匹配类方法访问类实例变量时,我遇到了一个概念性的ruby问题。例如..。
class Test
@foo = nil
def self.foo foo
@foo = foo
end
end
如何在不重命名@foo的情况下从Test访问self.foo?显然有一些简单的方法可以解决这个问题,但这更多的是一个功能性Ruby问题,而不是一个实际问题。
module Foo
attr_accessor :val
end
module Bar
def bar
val = 50
end
end
class FooBar
include Foo
include Bar
end
fb = FooBar.new
puts fb.bar # 50
puts fb.val # nil
我想在Bar中更改Foo的"val“值。
就像你知道的那样,我之所以尝试这样做,是因为我想在Clearance (0.8.2 (旧版本,我知道))中通过Facebook Canvas应用程序添加用户身份验证。我想要更改的变量是。
这个
在xcode中,在创建UIViewController子类之后,在viewDidUnload方法中,有一个由xcode添加的注释:
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
这里,xcode推荐我们使用self.myOutlet=nil来释放object。
但在xcode4中,有一个很酷的特性:您只需将一个Interface Builder出口拖到它的所有者
我在iOS类中以一个属性声明作为结束。在我的.h文件中,我有以下声明:
@property (strong, nonatomic)NSString *sessionID;
在我的.m文件中,我有以下代码:
- (void)setSessionID:(NSString *)aSessionID
{
_sessionID = aSessionID;
// Custom code to set this in a global context
}
这一切都很好,编译时没有任何问题。现在,如果没有设置任何设置,则需要让sessionID返回一个默认值,但是,添加这一行的那一刻:
- (NSString