标签: instance-variables

在Objective-c中继承实例变量

在Objective-c 2.0中,为什么子类需要使用self关键字在父类中引用实例变量?

考虑这个例子:

// a.h
@interface MyClass : NSObject
@property (nonatomic, retain) Object *myObject;
@end

// a.m
@implementation MyClass
@synthesize myObject;
@end


// b.h
@interface AnotherClass : MyClass
@end

// b.m
@implementation AnotherClass
- (void) someMethod {
    // error
    // Object *obj = myObject;

    // works
    // Object *obj = self.myObject;
}
@end
Run Code Online (Sandbox Code Playgroud)

inheritance objective-c instance-variables self

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

"通过实例访问共享成员,常量成员,枚举成员或嵌套类型"

我想知道为什么 Visual Studio会提出这个警告:

通过实例访问共享成员,常量成员,枚举成员或嵌套类型

我的代码:

Dim a As ApplicationDeployment = deployment.Application.ApplicationDeployment.CurrentDeployment

If System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed Then
    If a.IsNetworkDeployed Then
        ' do something   
    End If
End If
Run Code Online (Sandbox Code Playgroud)

什么暗示"通过一个实例"?另外,为什么这是一个"警告"?

.net vb.net warnings shared instance-variables

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

覆盖实例var的默认值

鉴于上课Obj,

class Obj: NSObject {
    var x = "x"
}
Run Code Online (Sandbox Code Playgroud)

和它的子类,Obj1你如何更改默认值var x

简单地设置一个新值将是最有意义的,但似乎错误...

class Obj1: Obj {
    var x = "y"
}
Run Code Online (Sandbox Code Playgroud)

❗️无法覆盖存储的属性'x'

overriding instance-variables default-value subclassing swift

11
推荐指数
3
解决办法
5242
查看次数

smalltalk singleton模式:如何初始化实例变量?

我在使用singleton模式初始化smalltalk中的实例变量时遇到了麻烦.(这里是另一个实现链接以便澄清)

这就是我所拥有的:

new

^UniqueInstance ifNil: [UniqueInstance := self basicNew.
                        UniqueInstance: instanceVar := Object new. ].
Run Code Online (Sandbox Code Playgroud)

最后一行(UniqueInstance:instanceVar:= Object new.)不起作用,但基本上我需要做的是:在将UniqueInstance返回给调用者之前,将instanceVar实例化为Object.

请注意,此"new"方法用作类实例化,并且该库是UniqueIsntance的实例变量(所需类的isntance).

谁能指出我正确的方向?

singleton smalltalk instance-variables

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

在Ruby中,如何在哈希而不是数组中获取实例变量?

我有一个Ruby类.我想从参数获取一个实例变量到该类中的方法.我可以将所有实例变量作为数组获取:

self.instance_variables
Run Code Online (Sandbox Code Playgroud)

但是,我想获取名为的实例变量arg,具体如下:

class MyClass
  def get_instance_variable(arg)
    hash_of_instance_variables[arg]
  end
end

object.get_instance_variable('my_instance_var')
Run Code Online (Sandbox Code Playgroud)

我该如何计算hash_of_instance_variables

ruby ruby-on-rails instance-variables

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

目标C:在实现文件中声明的带有IVars的ARC

我发现了一篇有趣的文章,描述了如何在Objective-C 2.0中,在实现文件中声明实例变量.考虑这个例子:

@interface MyClass {}
@end

@implementation MyClass {    
  NSObject *obj1;
  NSObject *obj2;
}
@end
Run Code Online (Sandbox Code Playgroud)

注意实例变量obj1,并obj2声明的属性.由于它们未使用@property语句声明,因此没有相应的所有权限定符,例如weak/ strong.

我的问题是,使用自动引用计数(ARC)的项目是否记得清理以这种方式声明的对象?任何解决这一具体问题的文件都将受到赞赏.

instance-variables objective-c-2.0 automatic-ref-counting

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

CoffeeScript实例变量

我正在学习CoffeeScript,我有一个轻微的头痛,我还没弄清楚.如果我创建一个对象来做某些事情,我偶尔需要一个实例变量来在该方法之间共享该对象.例如,我想这样做:

testObject = 

  var message # <- Doesn't work in CoffeeScript.

  methodOne: ->
    message = "Foo!"

  methodTwo: ->
    alert message
Run Code Online (Sandbox Code Playgroud)

但是,您不能var在CoffeeScript中使用,并且没有该声明message仅在内部可见methodOne.那么,如何在CoffeeScript中的对象中创建实例变量?


更新:修复了我的例子中的拼写错误,所以方法实际上是方法:)

instance-variables coffeescript

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

继承:对象创建

假设我有这段代码:

class Animal {
    int legs = 4;
    int head = 1;
}

public class Dog extends Animal {
    public static void main (String []args) {
        Dog dog = new Dog();
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道super()隐式置于no-args构造函数的第一行,所以我知道Animal构造函数将被执行,因此Animal将设置实例变量.

为了这个目的,我想,了解如果一旦这些变量已经被超级构造函数(初始化Animal),这些实例变量会在动物对象有保留或复制到子类(Dog).

在第一种情况下,对象Animal将被隐式实例化,super();并且每当实例Dog需要访问其中一个变量时,它将访问实例中保存的变量Animal(在后台创建).或者第二种情况,如果对象Animal将被临时创建,则将所有实例变量(in Animal)复制到Dog实例,然后删除Animal临时创建的实例.

我个人认为,例如,一个Dog对象将直接链接到一个Animal直接连接到一个对象的对象.

是这样的吗?

java inheritance instantiation instance-variables

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

具有变量,事件和DOM操作的多个jQuery实例

我正在开发一个项目,最初只是构建一个带有参数(XML文件)的函数,并将其转换为HTML/CSS结构(此处可以找到早期版本).这很有效.但是,我想实现更多选项和更多灵活性.我读过的主题(如1,2,3),但我不能换我的头周围.

我的插件有很多特定于实例的需求:

  • 变量
  • 选项
  • 事件处理程序

并且有一些重要的选择:

  • 显示全屏版本
  • 显示正常版本(附带"打开fs版本"按钮)
  • 指定正常版本的容器
  • 设置普通版本的fontsize
  • 为fs版本设置可能的字体大小(用于放大和缩小树)
  • 设置一个类,当用户单击具有该类的元素时,将打开fs版本

我将描绘插件当前状态的基本结构.

两个第一选项是最重要的选项.但默认为true,如果用户同时打开它们false,则插件将不会执行.

然后,插件会分配全局变量,并根据此信息创建新的DOM元素.在实践中它看起来像这样(注意全局变量在我的脚本的顶部声明).

function initVars(args) {
    fontsizes = fsFontSizes;
    errorContainer = $(".tv-error");
    var trees = [],
        tooltips = [];

    if (args.normalView) {
        normalView = true;
        $(args.container).append('<div id="tree-visualizer" style="display: none"></div>');
        SS = $("#tree-visualizer");
        var SSHTML = '<div class="tv-error" style="display: none"><p></p></div>' +
            '<div class="tree" style="font-size: ' + args.fontSize + 'px;"></div>' +
            '<aside class="tooltip" style="display: none"><ul></ul>' +
            '<button>&#10005;</button></aside>';
        if …
Run Code Online (Sandbox Code Playgroud)

jquery global-variables instance-variables jquery-plugins

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

Javascript类中的实例变量

我主要使用PHP和Java编写代码,但我偶尔会在项目的前端工作并使用JavaScript.我通常以不同于下面的方式创建对象,但是我遇到了这个问题,我感兴趣的是语法与我通常编程的类似.

我正在四处寻找,试图找出如何使用下面的语法在JavaScript类中使用实例变量.我已经尝试通过name;,或_name;,或者var name;所有这些先前的变量声明实例变量并添加= null;,但仍然在我的控制台中出错.错误主要是my-file.js:2 Uncaught SyntaxError: Unexpected identifier.我只是想通过构造函数设置我的实例变量.

如何使用JavaScript中的实例变量,使用下面的语法?

class MyClass {
  var _name;

  constructor(name) {
    _name = name;
    alert("Hello world, from OO JS!");
    this.myFunction();
  }

  myFunction() {
    document.getElementById("myElement").addEventListener("click", function() {
        console.log("Ant's function runs. Hello!");
    });
  }
}

window.onload = function() {
  var person = "John Smith";
  var myClass = new MyClass(person);
}
Run Code Online (Sandbox Code Playgroud)

javascript oop constructor class instance-variables

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