标签: init

Objective-C中的对象初始化序列

Cocoa框架有一个约定,总是调用继承类self = [super init]init方法,因为[super init]可能返回一个新实例.

如果我这样做会怎么样?

@interface MyClass : NSObject /* or any other class */ {
    int ivar_;
}
@end

@implementation MyClass

- (id)init {
    ivar_ = 12345;

    if ((self = [super init])) {
        NSLog(@"ivar_'s value is %d", ivar_);
    }
    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

[super init]返回新实例的情况下,我将在控制台中看到什么?ivar_'s value is 0

我想不出一种方法来检查这个,因为我不知道哪个类可以从它的init方法返回一个新实例.此外,似乎无法在文档中找到此方案的明确说明.

任何人都可以帮我吗?谢谢!

objective-c init

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

将随机值分配给python程序中的参数

我需要在中分配默认随机值__init__().例如:

import math
import random
class Test:
    def __init__(self, r = random.randrange(0, math.pow(2,128)-1)):
        self.r = r
        print self.r
Run Code Online (Sandbox Code Playgroud)

如果我创建了10个Test实例,它们都会获得完全相同的随机值.我不明白为什么会这样.我知道我可以在其中分配随机值__init__(),但我很好奇为什么会发生这种情况.我的第一个猜测是种子是当前时间,并且对象的创建距离太近,因此获得相同的随机值.我创建的对象间隔1秒,但结果仍然相同.

python random parameters init

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

是否以init方法开始?

我想知道我们何时在项目中使用"init"方法?我见过很多没有它的项目,他们使用"applicationDidFinishLaunching"启动应用程序,但不是init方法,你对此有什么想法吗?

非常感谢

iphone objective-c init ios

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

在iOS中是否有一个始终被调用的init方法?

是否有一个总是在Cocoa中调用的方法?许多类都有init或者initWith,但更糟糕的是它们可以从笔尖或其他东西加载.在这种情况下,我不想在周围找到它是如何做到的.我只是想设置一些初始变量和其他的东西,我想一个方法子类,我可以依靠不管它是一个UIView,UIViewController或者UITableViewCell

cocoa-touch objective-c init ios

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

如何为servlet抛出init()方法的异常

好吧,我将首先展示我的代码:

@Override
public void init() throws ServletException {
    super.init();

    try {
        securityController = SecurityControllerFactory.getInstance().create();
    } catch (Exception e) {
        System.err.println("Error creating security controller; " + e.getMessage());
    }

    // max allowed uploaded uploadedFile size is 10 MB
    maxFileSize = getBytes(10);
    maxMemSize = getBytes(2);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,编译器迫使我使用try/catch来实例化SecurityController.但就我而言,我认为如果无法实例化安全控制器,它应该停止实例化Servlet并抛出异常.对此有何建议/解释?

java servlets exception-handling init factories

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

Swift 无法在类 init 方法中分配给 self

我有一堂课叫Letter

class Letter
{    
    init() {}
}
Run Code Online (Sandbox Code Playgroud)

我对这个类有一个扩展:

extension Letter
{
    convenience init(file_path:String) {
       self = Letter.loadFromFile(file_path)
    }

    class func loadFromFile(file_path:String)->Letter {...}
}
Run Code Online (Sandbox Code Playgroud)

我需要使用文件路径创建和初始化,当我调用时,Letter(file_path)我需要一个由 func 返回的新对象loadFromFile。如何在 init 方法中赋值或返回一个新对象?

它给出了错误:

无法赋值:“self”是不可变的

init swift

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

如何在python中安装带有下划线的模块名称?

我正在尝试安装 Levenshtein 模块,如您在此处看到的。

我能够setup.py通过 运行该文件python setup.py build

python然后,当我通过从终端立即进入 python 时,在与文件夹相同的文件夹中Levenshtein,我尝试导入它:

import Levenshtein,

但我收到以下错误:

    >>> import Levenshtein
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Levenshtein/__init__.py", line 1, in <module>
    from Levenshtein import _levenshtein
ImportError: cannot import name _levenshtein
Run Code Online (Sandbox Code Playgroud)

并且,当我查看文件夹时Levenshtein,我看到两个与该名称相似的文件:

 _levenshtein.c   _levenshtein.h
Run Code Online (Sandbox Code Playgroud)

这个导入有什么意义,我应该如何获取名称为 的文件_levenshtein

python import module init levenshtein-distance

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

在systemd中执行jar文件时强制工作目录

我试图在Linux中从systemd服务启动一个jar.我正在执行的jar假定在当前目录中有一个xml文件.我使用-config参数传递该文件的名称.我创建的示例服务如下:

[Unit] Description=my service After=network.target

[Service] Type=simple Environment="xml_file_name=sample.xml" ExecStart=/usr/bin/java -jar /path/to/jar/myapp.jar -config ${xml_file_name}

上面的服务文件放在/ usr/lib/systemd/system目录中,名为myservice.service.我正在执行以下命令来启动它:

systemctl daemon-reload systemctl stop myservice.service systemctl start myservice.service systemctl status myservice.service

systemctl status myservice.service命令显示jar文件已运行,但我的应用程序说它无法找到$ {xml_file_name}.

另外,我的jar声明它是从/目录执行的.我认为这是问题的一部分,因为$ {xml_file_name}仅适用于/ path/to/jar /目录.

事情尝试:

  • -Xbootclasspath/p:"/path/to/jar/":预先添加jar位置的路径,以便可以看到$ {xml_file_name}.

  • 将/ path /更改为/ jar /以确保它已启用所有可能的权限

  • 我尝试User=root[Service]我的systemd服务部分添加,但它没有改变.无论哪种方式,只有root用户在计算机上,并且权限似乎都检查出来.

是什么让这更奇怪的是,如果我cd到/,然后手动执行:

/usr/bin/java -jar /path/to/jar/myapp.jar -config sample.xml

一切话都很好.

有什么明显的东西我在这里不见了吗?是否有可能告诉systemd服务,执行这个java jar,但确保工作路径/path/to/jar//?相反?

java linux daemon init systemd

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

Gitkraken 工作流程:如何初始化本地和远程?

我是 Gitkraken 的新用户,有一个工作流程我无法从文档中轻易弄清楚:

  • 我有一个以前从未有过存储库的编程项目
  • 我想在我已经使用的目录中为其创建一个本地存储库
  • 同时,我想在 Bitbucket.org 上创建一个远程存储库,并正确连接,以便“推”和“拉”按钮正常工作。

创建本地很容易,但是“添加远程”给了我一个奇怪的错误消息,“不匹配”。我不太理解这个“添加远程”命令:它可以在远程站点上创建一个存储库,还是仅仅附加到必须已经存在的存储库?我通过浏览器创建它并在终端使用“git add remote”克服了这个错误,但这很笨拙,我想做得更好。

我还尝试通过使用 Gitkraken File > Init 命令并选中“同时克隆”复选框来执行此操作,但这给我带来了错误消息:“目录已存在且不为空。” 不,Gitkraken,你错了!我不想将新的(空)远程存储库克隆到本地,我想将新的本地存储库复制到其中。反向操作!

那么,为新纳入 Git 版本控制的项目创建本地和关联远程的最佳工作流程是什么?

git init bitbucket gitkraken

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

通过可执行 Jar 启动时,Spring Boot 应用程序日志记录不会发生

我有一个 Spring boot 应用程序,当从命令行运行时,它可以完美地记录到文件系统(通过logging.level/logging.file属性):

java -jar jarfilename.jar
Run Code Online (Sandbox Code Playgroud)

但是,当我将以下内容放入 pom.xml 中以创建可执行 JAR,然后尝试将其作为 Ubuntu 中的 init 脚本运行时,日志记录根本不会发生。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

以下是我在 Linux 上运行的命令:

ln -s /path/to/executablejar.jar /etc/init.d/myapp
chmod a+x /etc/myapp
/etc/init.d/myapp start
Run Code Online (Sandbox Code Playgroud)

我想这一定是日志记录配置的某种问题,没有考虑可执行 jar 的启动方式,但我很困惑并且希望得到任何指导。

这是我在 application.properties 中的日志记录设置:

logging.level.org.springframework=error
logging.level.com.myapp=debug
logging.level.org.hibernate=error
logging.file=/path/to/a.log
Run Code Online (Sandbox Code Playgroud)

java init executable-jar maven spring-boot

5
推荐指数
0
解决办法
1807
查看次数