标签: init

从NSObject继承如何工作?

关于Objective-C的一些事情让我很困惑:

首先,在objective-c指南中,很明显每个类都需要调用其子类的init方法.关于直接从NSObject继承的类是否需要调用其init方法有点不清楚.是这样的吗?如果是这样,为什么呢?

其次,在关于NSObject的部分中,有这样的警告:

但是,不需要从另一个类继承任何特殊行为的类应该成为NSObject类的子类.该类的实例必须至少具有在运行时表现为Objective-C对象的能力.从NSObject类继承此功能比在新的类定义中重新创建它更简单,更可靠.

这是否意味着我需要指定所有对象显式地从NSObject继承?或者这就像Java/Python/C#,其中所有类都是NSObject的子类型?如果没有,是否有任何理由制作除NSObject之外的根类?

oop initialization objective-c init nsobject

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

c#中的友好课程

实际上我重构了一部分代码.我想要做的是用对象"TaskArgument"初始化一个对象"任务".我们说"TaskArgument"是抽象的,"Task"实现了一个方法"OnEnterTask(TaskArgument args)"并且是密封的(对于现有系统的某些特殊行为,这超出了范围).

旧代码:

public sealed class Task : SomeSystemBaseTask {
  private int accessMe; 
  private int meToo;

  public void OnEnterTask(TaskArgument args) {
    if (args is SimpleTaskArgument) {
      accessMe = ((SimpleTaskArgument)args).uGotIt;
      meeToo = 0;
    } else if (args is ComplexTaskArgument) {
      accessMe = ((ComplexTaskArgument)args).uGotItValue * ((ComplexTaskArgument)args).multiplier;
      meToo = ((ComplexTaskArgument)args).multiplier - 1;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

什么是避免类型检查的最佳做法?我的第一个愚蠢的想法是:

public abstract class TaskArgument {
    internal public abstract Initialize(Task args);
}

public class SimpleTaskArgument : TaskArgument {
    public int uGotIt = 10;

    internal public Initialize(Task task){
        task.accessMe …
Run Code Online (Sandbox Code Playgroud)

.net c# oop design-patterns init

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

单例python调用问题两次__init__

我有一个像这样的单身人士

class Singleton:

    class __impl:
        def __init__(self):
            print "INIT"

    __instance = None

    def __init__(self):
        # Check whether we already have an instance
        if Singleton.__instance is None:
            Singleton.__instance = Singleton.__impl()

        # Store instance reference as the only member in the handle
        self.__dict__['_Singleton__instance'] = Singleton.__instance

    def __getattr__(self, attr):
        """ Delegate access to implementation """
        return getattr(self.__instance, attr)

    def __setattr__(self, attr, value):
        """ Delegate access to implementation """
        return setattr(self.__instance, attr, value)
Run Code Online (Sandbox Code Playgroud)

当我做了几个Singleton的实例时,我得到了两个init的调用,我的意思是"INIT"被打印了两次,我觉得它不应该发生

有人知道这有什么问题或有更好的方法来实现这个?

python singleton init

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

导入模块忽略__init__.py

我正在尝试在Python中导入包内的模块中的函数,但是当我尝试时:

from package.module import some_function
Run Code Online (Sandbox Code Playgroud)

Python执行包的__init__.py但它不会发生.

有没有办法导入函数告诉Python忽略包的__init__.py?

谢谢

python import init package

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

Flask instanciation app = Flask()

我故意在app = Flask(name)中删除了名字,我收到此错误:

Traceback (most recent call last):
    File "routes.py", line 4, in <module>
        app = Flask() 
TypeError: __init__() takes at least 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

这是我的nettuts代码,这是我的代码:

from flask import Flask, render_template

app = Flask() 

@app.route('/')
def home():
    return render_template('home.html')

@app.route('/about')
def about():
    return render_template('about.html')


if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我的问题是:这个init方法在哪里至少需要2个参数?

python init flask

4
推荐指数
3
解决办法
1188
查看次数

在C中初始化一个结构

我有一个与C中的结构初始化有关的问题.我有一个结构:

struct TestStruct
{
u8 status;
u8 flag1;
u8 flag2;
};
Run Code Online (Sandbox Code Playgroud)

我想要一个泛型函数/宏来初始化这个结构并设置一个参数的值,例如status = 1,简单的方法是:

TestStruct t = {};
t.status = 1;
Run Code Online (Sandbox Code Playgroud)

但是,通过执行此操作,我将状态值设置为两次,在init函数中首先设置为0,然后将其设置为1(优化没有帮助?).
(请不要告诉我t = {1,0,0}我正在寻找一种通用方法)
我正在考虑init函数中的一个宏,例如:

#define INIT_TESTSTRUCT (param, value) \
{ .status=0, .flag1=0, .flag2=0, .param=value }
TestStruct t = INIT_TESTSTRUCT(status, 0);
Run Code Online (Sandbox Code Playgroud)

但是,编译器给出错误"初始化字段被覆盖",因为我已经设置了状态值两次.

请帮助指出如何改变宏来实现我想要的,非常感谢.

c struct init c-preprocessor

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

如何在Ubuntu Linux启动时运行Java应用程序

我有一个要求,我需要开发读取TCP/IP套接字的应用程序.我成功地将程序作为Java程序,没有GUI意味着一旦程序运行它就开始收听Socket并在Netbeans IDE的帮助下获得响应.现在按照我的要求,我必须在Linux系统启动后立即开始执行该程序.

其实我是Java和Linux平台的新手,所以很少有人怀疑.

  1. 没有GUI的我的套接字程序可以按照我的要求运行.
  2. 我怎么能编写脚本来在Linux上运行jar启动,我知道了.init.d是为了这个.

java sockets linux ubuntu init

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

Swift - 在课堂上为自己分配一个NIB

我正在为通知下拉列表创建一个UIView子类.我正在使用XIB构建视图,并希望在初始化时将该xib分配给类(即避免必须从调用ViewController执行此操作).

由于你无法在swift中分配给'self',我如何从类本身中正确地执行此操作?

class MyDropDown: UIView
{
     func showNotification()
     {
          self = UINib(nibName: nibNamed, bundle: bundle).instantiateWithOwner(nil, options: nil)[0] as? UIView
     }
}
Run Code Online (Sandbox Code Playgroud)

subclass init xib ios swift

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

从C程序关闭Linux意味着作为init进程运行

我正在编写一个C程序来在Linux系统上执行各种操作,然后将其关闭.这个程序将init=/path/to/program使用PID 1 的命令行选项启动,因此,我无法使用execl("/sbin/poweroff", "poweroff", NULL);,因为该poweroff命令不会关闭系统本身,它会通过PID 1请求进程执行此操作.那么什么代码init用来关闭系统?

c init power-management

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

jersey-rs web服务中的init方法

我是jax-rs的新手,并且已经建立了一个带有平针织物和玻璃鱼的网络服务.

我需要的是一个方法,一旦服务启动就会调用它.在这个方法中,我想加载自定义配置文件,设置一些属性,写一个日志,等等......

我尝试使用servlet的构造函数,但每次调用GET或POST方法时都会调用构造函数.

我有什么选择才能意识到这一点?

请告诉我,如果需要一些依赖项,请告诉我如何将它添加到pom.xml(或其他)

jax-rs init jersey

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