小编hob*_*Bob的帖子

如何使用Swift 4.2了解KVC

我正在使用带有Swift 4.2的Xcode 10.0,以从“用于OSX的可可编程”中了解键值编码

我被要求创建一个简单的类,它是NSObject的子类。以下代码:

import Cocoa

class Student: NSObject {
    var name: String = ""
    var gradeLevel: Int = 0
}

let student1 = Student()


student1.setValue("Benny", forKeyPath: "name")
Run Code Online (Sandbox Code Playgroud)

student1.setValue(“ Benny”,forKeyPath:“名称”)

生成以下错误消息:

执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)。

我在网上看过,似乎有些关于KVC的问题,例如:https : //bugs.swift.org/browse/SR-5139

我究竟做错了什么?该书于2015年出版。

kvc swift

4
推荐指数
1
解决办法
1036
查看次数

VHDL类型转换 - 找到4种可能的定义

我正在尝试将两个std_logic位转换为整数,如下所示

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;

ENTITY TEST IS
    PORT (sw1, sw0  :   IN      std_logic;
          x         :   OUT     integer RANGE 3 DOWNTO 0);
END ENTITY TEST;

ARCHITECTURE dflow OF TEST IS
    SIGNAL mes_sel : integer RANGE 3 DOWNTO 0;
BEGIN
    mes_sel <= to_integer(unsigned(std_logic_vector(SW1 & SW0)));
    x <= mes_sel;
END ARCHITECTURE dflow;
Run Code Online (Sandbox Code Playgroud)

但编译器不喜欢mes_sel赋值.我收到以下编译器错误消息:

错误(10327):Q4.vhd(92)处的VHDL错误:无法确定运算符""和""的定义 - 找到4个可能的定义

我不能将2位std_logic连接到一个向量然后转换吗?或者是别的什么?问候D.

vhdl

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

VHDL - 测试台 - 泛型

我一直致力于通过更改输入/输出向量大小的通用值来制作一个可以在多个实例中使用的解码器。解码器将“sll”一个位,基于输入的整数转换的多个位置。解码器本身工作正常。当我制作测试台并编译时,问题就出现了。导致:

错误 (10482):DECODER.vhd(41) 中的 VHDL 错误:使用了对象“n”但未声明

我在下面添加了模型和测试台:

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;

ENTITY DECODER IS
    --GENERIC (delay : delay_length := 0 ns);
    GENERIC (n      : POSITIVE := 2);
    PORT (a :   IN      std_logic_vector(n-1 DOWNTO 0);
            x   :   OUT std_logic_vector(2**n-1 DOWNTO 0));
END ENTITY DECODER;

ARCHITECTURE dflow OF DECODER IS
     CONSTANT x_out :   BIT_VECTOR (2**n-1 DOWNTO 0) :=
                            ( 0 => '1', OTHERS => '0');
BEGIN
    x <= to_stdlogicvector(x_out sll to_integer(unsigned(a)));
END ARCHITECTURE dflow;

--test bench----------------------------------------
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL; …
Run Code Online (Sandbox Code Playgroud)

vhdl

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

Swift 4.2关闭

嗨,我正在快速学习,我对用于过滤集合的闭包进行了练习

我有两个简单的闭包,用于过滤和映射字典

let myDict: [String: Int] = ["Dan":38, "Kira":2, "Olga":33, "Jess":10, "Bobo":4]

let filteredMyDict = myDict.filter {
    return $0.value < 5
}
print(filteredMyDict)

let filteredNames = filteredMyDict.map {
    return $0.key
}

print(filteredNames)
Run Code Online (Sandbox Code Playgroud)

是否可以链接过滤器和map语句,如果是这样的话.

closures swift

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

Swift 5 调用 squareRoot()

我正在为初学者阅读 Swift 4。我正在制作素数检查器,并希望squareRoot()在除法之前使用该函数获取平方根以检查素数。

这是我的代码:

 func isPrime(_ number: Int) -> Bool {
    switch number {
    case _ where number < 1 :
        return false
    case 1:
        return true
    default:
        break
    }
    let test = number.squareRoot()
    for i in 2..<number {
        if isDivisable(number, by: i) {
            return false
        }
    }
    return true
 }
Run Code Online (Sandbox Code Playgroud)

该行let test = number.squareRoot()生成编译器错误

“Int”类型的值没有成员“squareRoot”

但是,如果我将上面的行替换为:

test = 100.squareRoot()
Run Code Online (Sandbox Code Playgroud)

然后没有编译器错误。这两个值number和显然100都是 type Int。那么编译器不喜欢我squareRoot在参数上的使用是什么?number

希望这是有道理的

干杯

swift swift5

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

VHDL结构

大家好,任何人都可以帮我解决VHDL问题.我正在尝试一些实用的结构编程,并希望从一个简单的半加法器开始.继承我的代码

LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
Run Code Online (Sandbox Code Playgroud)

--XOR DESCRITION

entity xor_2 is
    port (a, b : in std_logic;
        f : out std_logic );
end xor_2;

Architecture func of xor_2 is
begin
    f <= a xor b;
end func;
Run Code Online (Sandbox Code Playgroud)

- 和说明

entity and_2 is
    port (a, b : in std_logic;
            f : out std_logic);
end and_2;

architecture func of and_2 is
begin
    f1 <= a and b;
end func;
Run Code Online (Sandbox Code Playgroud)

--HALF ADDER DESCRIPTION

entity struct_1 is
    port ( a, b : in std_logic;
            s, …
Run Code Online (Sandbox Code Playgroud)

vhdl hdl

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

标签 统计

swift ×3

vhdl ×3

closures ×1

hdl ×1

kvc ×1

swift5 ×1