在下面的单元中,我在IMPLEMENTATION部分声明了一个变量 - 该单元的本地变量.我还有一个在TYPE部分声明的过程,该过程接受一个参数并将该参数分配给有问题的局部变量.这个TFrame的每个实例都通过一个唯一的变量传递passMeTheVar.
我想要它做的是为帧的每个实例保留它自己的变量版本,与其他变量不同,并使用它来定义它的运作方式.然而,似乎正在发生的是所有实例都使用相同的值,即使我明确地将每个实例传递给另一个变量.
即:
Unit FlexibleUnit;
interface
uses
//the uses stuff
type
TFlexibleUnit=class(TFrame)
//declarations including
procedure makeThisInstanceX(passMeTheVar:integer);
private
//
public
//
end;
implementation
uses //the uses
var myLocalVar;
procedure makeThisInstanceX(passMeTheVar:integer);
begin
myLocalVar:=passMeTheVar;
end;
//other procedures using myLocalVar
//etc to the
end;
Run Code Online (Sandbox Code Playgroud)
现在在另一个Form中的某个地方,我将这个Frame放到了Design窗格上,有时在一个Form上有两个这样的框架,并在适当的位置声明它等等.每个都是独一无二的:
ThisFlexibleUnit : TFlexibleUnit;
ThatFlexibleUnit : TFlexibleUnit;
Run Code Online (Sandbox Code Playgroud)
当我做一个:
ThisFlexibleUnit.makeThisInstanceX(var1); //want to behave in way "var1"
ThatFlexibleUnit.makeThisInstanceX(var2); //want to behave in way "var2"
Run Code Online (Sandbox Code Playgroud)
它们似乎都共享相同的变量"myLocalVar".
原则上,我做错了吗?如果这是正确的方法那么这是调试我所拥有的东西(这个问题太大而无法发布),但如果这在原则上不正确那么有没有办法做我建议的事情?
编辑:
好的,所以这里学到的教训是类定义就是这样.许多类可以放在一个单元中,该Type部分中所有类的所有实例共享单元的实现部分.
我知道这个算法是如何工作的,但是不能决定何时使用哪种算法?
是否有一些指导方针,哪一个比其他或任何考虑更好?
非常感谢.
Clojure可以像Haskell那样实现(g∘f)构造g . f吗?我目前正在使用类似的解决方法(fn [n] (not (zero? n))),这不是很好:)
我没有和我一起使用有效的C++,这让我非常烦恼,所以我必须要求自己的理智.特定
class Foo : public Bar{}
void MyFunc(Bar &_input);
Run Code Online (Sandbox Code Playgroud)
如果我通过了Foo,我是否与切片问题纠缠在一起还是我避免了它?
我一直尝试但无法成功设置TableView的backgroundColor.设置tableView.backgroundColor和/或cell.backgroundColor以clearColor当父视图控制器是没有工作UIViewContoller.
我的nib文件结构是
FileOwner
View
UITableView
Run Code Online (Sandbox Code Playgroud)
(注意:我将TableView设置为groupsTable部分)
第一次尝试,我UIView在代码中创建了viewDidLoad
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 300)] autorelease;
[view setBackgroundColor:UIColor blueColor]; // color it just to see if it is created at the right place
[self.tableView sendSubViewToBack:view];
Run Code Online (Sandbox Code Playgroud)
它有效,但它隐藏了细胞的内容.我能够看到标题的内容,但不能看到单元格内容.(但是当我更改视图的坐标(0,150,160,300)时,我能够看到单元格的内容,但随后它会松开tableview的backgroundColor.
第二次尝试,我创建了imageView
View
ImageView
UITableView
Run Code Online (Sandbox Code Playgroud)
并设置self.tableView.backgroundColor = [UIColor clearColor];但没有奏效.
我用谷歌搜索,但没有和平的答案.
a.2<-sample(1:10,100,replace=T)
b.2<-sample(1:100,100,replace=T)
a.3<-data.frame(a.2,b.2)
r<-sapply(split(a.3,a.2),function(x) which.max(x$b.2))
a.3[r,]
Run Code Online (Sandbox Code Playgroud)
返回列表索引,而不是整个data.frame的索引
我试图返回b.2每个子组的最大值a.2.我怎样才能有效地做到这一点?
给定一个最小整数和最大整数,我想创建一个数组,从最小值到最大值计数2,然后退回(再次按2,重复最大数字).
例如,如果最小数字是1,最大值是9,我想要[1, 3, 5, 7, 9, 9, 7, 5, 3, 1].
我想尽可能简洁,这就是我使用单行的原因.
在Python中,我会这样做:
range(1, 10, 2) + range(9, 0, -2)
Run Code Online (Sandbox Code Playgroud)
在我刚刚开始学习的Ruby中,我到目前为止所提出的是:
(1..9).inject([]) { |r, num| num%2 == 1 ? r << num : r }.reverse.inject([]) { |r, num| r.unshift(num).push(num) }
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我知道必须有更好的方法.它是什么?
说我的routes.rb上有这个:
resources :accounts
Run Code Online (Sandbox Code Playgroud)
除其他外,这给了我:
new_account GET /account/new
Run Code Online (Sandbox Code Playgroud)
我需要生成这个(例如)“/account/new#test”
如何将“#test”传递给new_account_path()?
我有一个名为TiledImage的自定义UIView,它有一个名为tilesImage的属性和一个自定义的drawRect方法.我将此视图添加到我的ViewController中,但是当取消分配ViewController时,即使我正在释放视图并将其设置为nil,也不会调用此视图的dealloc.可能是什么导致了这个?我没有对视图的任何其他引用,所以我的理解是它应该正确释放.
这是我将视图添加到视图控制器的方法:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"tile" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
self.backImageView = [[TiledImage alloc] initWithFrame:IMAGE_FRAME];
self.backImageView.tiledImage = image;
[self.view addSubview:self.backImageView];
[self.view sendSubviewToBack:self.backImageView];
[image release];
Run Code Online (Sandbox Code Playgroud)
在我的ViewController的dealloc方法中,我有这个:
_backImageView.tiledImage = nil, [_backImageView release], _backImageView = nil;
Run Code Online (Sandbox Code Playgroud)
这行代码被命中,但是在TiledView上从不调用dealloc.请注意,_backImageView是backImageView使用的属性var.
有人可以给我一些关于我可能做错的想法,这会阻止调用TiledImage对象的dealloc吗?