小编End*_*nke的帖子

Swift中的Perlin噪声发生器

我有这个代码用于在obj-c中生成1D噪声,它运行得非常好:

- (float)makeNoise1D:(int)x {
    x = (x >> 13) ^ x;
    x = (x * (x * x * (int)_seed + 19990303) + 1376312589) & RAND_MAX;
    return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & RAND_MAX) / 1073741824.0);
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试在Swift中重现它,但它总是失败并在返回时显示EXEC_BAD_INSTRUCTION.这就是现在的样子,我不得不吐出最后的表情,但我很确定这不是问题所在.

func makeNoise1D(var x : Int) -> Float{
    x = (x >> 13) ^ x;
    x = (x * (x * x * seed! + 19990303) + 1376312589) & 0x7fffffff
    var inner = …
Run Code Online (Sandbox Code Playgroud)

random perlin-noise ios swift

5
推荐指数
1
解决办法
1264
查看次数

编码NSMutableArrays会给NSCoding带来错误

当我尝试使用NSMutableArray对自定义对象进行编码时,我总是会遇到以下异常:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'cannot encode (void *) value: <2063e916>'
Run Code Online (Sandbox Code Playgroud)

什么可能导致这个?mutablearray被初始化,并且在它断开的那一点上有数据.我很确定我在'encodeWithCoder'方法中做错了,因为如果我把它保持为空,它运行良好.

这就是我尝试将我的mutablearray转换为数组的方法,但这没有帮助:

- (void) encodeWithCoder:(NSCoder *)encoder {
    [encoder encodeObject:[[NSArray alloc] initWithArray:_myMutableArray] forKey:kMutableArrayKey];
}
Run Code Online (Sandbox Code Playgroud)

objective-c nscoding nsmutablearray ios

0
推荐指数
1
解决办法
630
查看次数