Каков самый эффективный путь в XCode для добавления методов делегата или протокола к.m файлу?

Самое основное решение состоит в том, чтобы выбрать точку в вычислении некоторый процент пути через это, я уверен GPU, с которым я работаю, может завершиться вовремя, сохранить всю информацию состояния и остановку, затем запуститься снова.

Обновление: Для Linux: Выход X позволит Вам запускать приложения CUDA, пока Вы хотите. Никакая Tesla не потребовала (9600 использовался в тестировании этого)

, Одна вещь отметить, однако, состоит в том, что, если X никогда не вводится, драйверы, вероятно, не будут загружены, и оно не будет работать.

также кажется, что для Linux, просто не имея никаких X дисплеев в то время будет также работать, таким образом, X не должен выйтись, пока Вы экранируете к non-X полноэкранному терминалу.

5
задан Amanda S 4 April 2013 в 18:56
поделиться

2 ответа

извините за поздний комментарий, Я использую этот изящный трюк.

Например, ваш класс называется «MyClass», вы хотите, чтобы он имел протокол NSTableDataSource. Вам нужно написать

@interface MyClass : NSObject <NSTableDataSource> 
{ 
   ... usual stuff here ...
@end

, затем щелкнуть правой кнопкой мыши NSTableDataSource, щелкнуть « Перейти к определению » .... и вы можете скопировать его оттуда.

Если хотите, чтобы оно было быть делегатом, скажем еще раз, NSTableView, вы просто называете протокол NSTableViewDelegate (это настоящее имя протокола!), щелкните его правой кнопкой мыши, щелкните « Перейти к определению » - и он у вас там , вам просто нужно везде игнорировать эти метки препроцессора.

Возможно, это не так просто, как, например, с интерфейсами Java и NetBeans, но не намного медленнее.

14
ответ дан 18 December 2019 в 11:59
поделиться

В настоящее время нет возможности сделать это с помощью стандартного плагина. Вы можете создать плагин для чтения findbugsChecks.xml и вывода необходимой информации.

Приведенный ниже код выведет общее количество обнаруженных ошибок и ошибок в пакете для любого проекта с findbugsChecks.xml в выходном каталоге. Вы можете настроить имя файла, который он читает, установив свойство findBugsChecks в конфигурации:

package name.seller.rich;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

/**
 * @goal stats
 */
public class FindbugsStatsMojo extends AbstractMojo {

    /**
     * Where to read the findbugs stats from
     * 
     * @parameter expression="${findbugsChecks}"
     *            default-value="${project.build.directory}/findbugsCheck.xml"
     */
    private File findbugsChecks;

    /**
     * Output the Findbus stats for the project to the console.
     */
    public void execute() throws MojoExecutionException, MojoFailureException {
        if (findbugsChecks != null && findbugsChecks.exists()) {
            try {
                Xpp3Dom dom = Xpp3DomBuilder.build(new FileReader(
                        findbugsChecks));

                // get the summary and output it
                Xpp3Dom summaryDom = dom.getChild("FindBugsSummary");

                // output any information needed
                getLog().info(
                        "Total bug count:"
                                + summaryDom.getAttribute("total_bugs"));

                Xpp3Dom[] packageDoms = summaryDom.getChildren("PackageStats");

                getLog().info(packageDoms.length + " package(s)");
                for (int i = 0; i < packageDoms.length; i++) {
                    String info = new StringBuilder().append("package ")
                            .append(packageDoms[i].getAttribute("package"))
                            .append(": types:").append(
                                    packageDoms[i].getAttribute("total_types"))
                            .append(", bugs:").append(
                                    packageDoms[i].getAttribute("total_bugs"))
                            .toString();
                    getLog().info(info);
                }
            } catch (FileNotFoundException e) {
                throw new MojoExecutionException(
                        "Findbugs checks file missing", e);
            } catch (XmlPullParserException e) {
                throw new MojoExecutionException(
                        "Unable to parse Findbugs checks file", e);
            } catch (IOException e) {
                throw new MojoExecutionException(
                        "Unable to read Findbugs checks file", e);
            }
        }
    }
}

Чтобы упаковать этот код, добавьте его в папку src / main / java проекта Maven с POM следующим образом:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>name.seller.rich</groupId>
  <artifactId>maven-findbugs-stats-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <version>0.0.1</version>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>2.2.0</version>
    </dependency>
  </dependencies>
</project>

Then запустите mvn install , чтобы установить подключаемый модуль.

Чтобы использовать его, вы можете запустить его как дополнительную цель в командной строке или привязать к своему проекту для запуска в рамках стандартного жизненного цикла.

Здесь '

0
ответ дан 18 December 2019 в 11:59
поделиться