小编Add*_*son的帖子

Swift Equatable Protocol

我正在为Swift学习本教程:https://www.raywenderlich.com/125311/make-game-like-candy-crush-spritekit-swift-part-1并遇到了这段代码:

func == (lhs: Cookie, rhs: Cookie) -> Bool {
    return lhs.column == rhs.column && lhs.row == rhs.row
}
Run Code Online (Sandbox Code Playgroud)

我写的确是这样,但Xcode给出了我的这些错误:

Consecutive declarations on a line must be separated by ';'
Expected declaration operators are only allowed at global scope
Run Code Online (Sandbox Code Playgroud)

我从apple的文档中找到了这段代码:https://developer.apple.com/documentation/swift/equatable

这和我写的很相似.怎么了?这对我来说似乎是个错误.我正在使用Xcode 6 Beta 2

编辑:

这是我的整个Cookie类:

class Cookie: Printable, Hashable {
    var column: Int
    var row: Int
    let cookieType: CookieType
    let sprite: SKSpriteNode?

    init(column: Int, row: Int, cookieType: CookieType) {
        self.column = column …
Run Code Online (Sandbox Code Playgroud)

ios swift xcode6

85
推荐指数
3
解决办法
2万
查看次数

generateCGImagesAsynchronouslyForTimes有时不生成整个缩略图

我正在使用正在使用的OS X应用程序,AVAssetImageGenerator.generateCGImagesAsynchronouslyForTimes它通常可以正常工作.然而,偶尔我回来的缩略图只包含前几行像素,其余的是绿色,有时图像将是不同的绿色阴影.追踪是非常困难的,因为它不会一直发生,但是当它确实有大约一半的缩略图受到影响时.这是我期望看到的图像:

在此输入图像描述

但通常会发生这种情况:

在此输入图像描述

这是我用来生成缩略图的代码:

let assetGenerator = AVAssetImageGenerator(asset: AVURLAsset(URL: url))
assetGenerator.appliesPreferredTrackTransform = true
let time = CMTime(seconds: 0, preferredTimescale: 30)

let handler: AVAssetImageGeneratorCompletionHandler = { _, image, _, res, error in
    defer { dispatch_group_leave(self.waitForThumbnail!) }

    guard let image = image where res == .Succeeded else {
        if let error = error { print(error) }
        return
    }

    let s = CGSize(width: CGImageGetWidth(image), height: CGImageGetHeight(image))
    self.thumbnail = NSImage(CGImage: image, size: s)

}

waitForThumbnail = dispatch_group_create()
dispatch_group_enter(waitForThumbnail!)

assetGenerator.maximumSize = maxThumbnailSize
assetGenerator.generateCGImagesAsynchronouslyForTimes([NSValue(CMTime: …
Run Code Online (Sandbox Code Playgroud)

thumbnails avfoundation avassetimagegenerator swift

13
推荐指数
1
解决办法
1051
查看次数

Angular Infinite $ digest循环

我正在一个可以搜索食物的网站上工作,看看它是水果,蔬菜还是两种(因为我很无聊).我决定使用Angular,尽管我很陌生.我开始收到此错误:$ rootScope:infdig Infinite $ digest循环

这可能是也可能不是确切的措辞或错误,因为页面滞后这么多,我无法打开Javascript控制台.

这是我的结果视图控制器:

app.controller('resultController', ['$scope', '$routeParams', '$http',
    function($scope, $routeParams, $http) {
        $scope.result = $routeParams.query;

        $scope.whatIsIt = function() {
            $http.get('json/foods.json').success(function(data) {
                var lists = JSON.parse(data);
                var itIsA = 'uuggghhhhh';

                if (lists['fruit'].contains($scope.result)) {
                    itIsA = 'fruit';
                } else if (lists['vegetable'].contains($scope.result)) {
                    itIsA = 'vegetable';
                }
            });
        }
    }]);
Run Code Online (Sandbox Code Playgroud)

继承我的app模块:

var app = angular.module('fruitOrNot', [
    'ngRoute'
]);

app.config(['$routeProvider' ,
    function($routeProvider) {
        $routeProvider.when('/', {
            templateUrl: 'layouts/fruit-search.html',
            controller: 'searchController'
        }).when('/:query', {
            templateUrl: 'layouts/result.html',
            controller: 'resultController'
        });
    }]);
Run Code Online (Sandbox Code Playgroud)

这是layouts/result.html:

<h1>{{ result …
Run Code Online (Sandbox Code Playgroud)

javascript infinite-loop angularjs

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

仅当字段是某个枚举变体时才为结构定义方法?

我有以下结构:

#[derive(Debug)]
pub struct Entry {
    pub index: usize,
    pub name: String,
    pub filename_offset: u64,
    pub entry_type: EntryType,
}

#[derive(Debug)]
pub enum EntryType {
    File {
        file_offset: u64,
        length: usize,
    },

    Directory {
        parent_index: usize,
        next_index: usize,
    },
}
Run Code Online (Sandbox Code Playgroud)

Entry是GameCube ROM文件系统表中的一个条目,它描述了一个文件或目录.我定义了各种方法,EntryEntry::read_filenameEntry::write_to_disk.但是,我有一些方法对常规文件和目录都没有意义.例如,Entry::iter_contents遍历目录的所有子条目.

我希望能够定义某些方法,例如Entry::iter_contents仅针对entry_type某个变体的条目.

我尝试EntryType变成一个特征并制作了一个DirectoryEntryInfoFileEntryInfo结构,两者都实现了EntryType.

可悲的是,这种方法存在一些问题.我有一个Vec<Entry>其他地方,这种变化将成为Vec<Entry<EntryType>>.使用这样的特质,我也没有办法垂头丧气Entry<EntryList>Entry<DirectoryEntryInfo>.我也尝试过做一些事情Any,因为这是我所知道的唯一一种在Rust中贬低的方式,但我只能投entry_type,而不是整个Entry本身.

最终,我想最终得到类似的东西: …

enums downcast type-safety type-parameter rust

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

Swift rand()不是随机的

今天是我与Swift的第一天,我遇到了一个问题.我使用rand生成一个随机数,但每次运行代码时它都会给我相同的结果.

main.swift:

import Foundation

var player = Player()

for _ in 1..6 {
    println(player.kick())
}
Run Code Online (Sandbox Code Playgroud)

player.swift:

import Foundation

class Player {
    var health = 25
    var xp = 15
    var upgrades = ["kick": 0, "punch": 0]

    func kick() -> Int {
        let range = (3, 7)
        let damage = Int(rand()) % (range.1 - range.0) + range.0 + 1
        return damage
    }

    func punch() -> Int {
        let range = (4, 6)
        let damage = Int(rand()) % (range.1 - range.0) + …
Run Code Online (Sandbox Code Playgroud)

random swift

4
推荐指数
2
解决办法
5566
查看次数

"each","foreach","collect"和"map"之间有什么区别?

似乎有很多方法可以在Ruby中循环使用Enumerable.有没有之间的差异each,foreachcollect,map或其他类似的方法呢?

或者有什么理由我不应该在某些情况下使用某些方法?

ruby iteration enums iterator loops

3
推荐指数
1
解决办法
2960
查看次数

为什么Vec :: len是一种方法?

我注意到Rust的Vec::len方法只是访问vector的len属性.为什么不len只是一个公共财产,而不是围绕它包装一个方法?我认为这是为了在以后实现发生变化的情况下,没有什么会破坏,因为它Vec::len可以改变它获取长度的方式而没有任何用户Vec知道.但我不知道是否还有其他原因.

我的问题的第二部分是关于何时设计API.如果我正在构建自己的API,并且我有一个带有len属性的结构,我应该len私有并创建一个公共len()方法吗?在Rust中公开字段是不好的做法吗?我不这么认为,但我没有注意到Rust经常这样做.例如,我有以下结构:

pub struct Segment {
    pub dol_offset: u64,
    pub len: usize,
    pub loading_address: u64,
    pub seg_type: SegmentType,
    pub seg_num: u64,
}
Run Code Online (Sandbox Code Playgroud)

这些字段中的任何一个是私有的,而是具有类似的包装函数Vec吗?如果是这样,为什么呢?在Rust有一个很好的指导方针吗?

methods naming visibility rust

3
推荐指数
1
解决办法
598
查看次数

C++ Segmentation fault:11,试图重载operator <<

我正在尝试重载此类中的<<运算符,但这是输出:

Hello, 
Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

test.cc:

#include <iostream>
#include "class.h"
#include <string>

using namespace std;

int main() {
    MYString s("Hello");

    MYString s2;

    string hello = "Hello";

    cout << s.text << ", " << s2.text << endl;

    cout << "S: " << s << endl;

    hello[0] = 'M';
    cout << hello << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是class.h:

#ifndef CLASS_H
#define CLASS_H

#include <string>

using namespace std;

class MYString {
public:
    string text;

    MYString(string data="") {
        text = data;
    }

    friend …
Run Code Online (Sandbox Code Playgroud)

c++ runtime-error segmentation-fault

2
推荐指数
2
解决办法
1184
查看次数

Ruby中的奇怪字符串行为

所以我在Ruby中玩,并注意到"a""b"返回"ab".如果喜欢这种非常奇怪和无用的东西,那么我想知道这叫什么,如果它有目的.我很感激任何答案.谢谢!

ruby string

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