小编pme*_*yer的帖子

arc4random(mac os x)的随机性如何?(或者我做错了什么?)

我正在使用swift/mac_os_x中优化的生活游戏实现.第一步:随机化一大块细胞(50%活着).

码:

for(var i=0;i<768;i++){
  for(var j=0;j<768;j++){
    let r = Int(arc4random_uniform(100))
    let alive = (aliveOdds > r)
    self.setState(alive,cell: Cell(tup:(i,j)),cells: aliveCells)
  }
}
Run Code Online (Sandbox Code Playgroud)

我期待相对均匀的随机性.我得到的有明确的模式:

大图

放大左下角:

放大了

(我已经在每32行和每列上将颜色更改为黑色,以查看图案是否排列为2的任何幂).

是什么导致这些模式?我试过了:

  • 用arc替换arc4random rand().
  • arc4stir()在每个arc4random_uniform调用之前添加
  • 移动显示器(确保模式在数据中,而不是显示故障)

关于下一步的想法?

random macos arc4random ios swift

14
推荐指数
1
解决办法
657
查看次数

改变UIView的CALayer框架(self.view.layer.frame = ...)似乎没有效果

我确定我在这里缺少一些基本的东西.我正在尝试以下的CALayers'hello world'代码:

http://www.raywenderlich.com/2502/introduction-to-calayers-tutorial

做第一个例子.xcode 4.2中的新单视图项目.没有更改笔尖/故事板.导入QuartzCore.将以下代码添加到ViewController.m中的ViewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.view.layer.backgroundColor = [UIColor blueColor].CGColor;
    self.view.layer.cornerRadius = 30.0;    
    self.view.layer.frame = CGRectMake(20, 20, 20, 20);
}
Run Code Online (Sandbox Code Playgroud)

我运行这个(ipad 2或ipad模拟器)并得到一个带圆角的全屏蓝色矩形.我希望得到的是20x20蓝色矩形偏移20/20.

我清楚地控制了视图层(如颜色和圆角所示).但是,调整框架似乎没有任何影响.我在设置它之前/之后已经对NSLog进行了设置,并且它已经改变了.根层的框架是否锁定到uiview框架?

我没有强烈的理由改变视图图层框架,我只是想通过正在发生的事情来推理.希望这是一个简单的问题......

谢谢!

保罗

iphone cocoa-touch core-animation ios

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

ios ×2

arc4random ×1

cocoa-touch ×1

core-animation ×1

iphone ×1

macos ×1

random ×1

swift ×1