Tag: 编程方式创build的

引导仍然需要外部的支持

我听说过引导一种语言的想法,也就是说为这个语言编写一个编译器/解释器。 我想知道如何做到这一点,并看看周围,看到有人说,这只能由两者之一 用不同的语言编写初始编译器。 在Assembly中手工编写一个初始编译器,这看起来像是第一个特例 对我而言,这两者似乎都不是从某种意义上来说是引导语言,因为它们都需要外界的支持。 有没有一种方法可以用自己的语言编写一个编译器?

iOS – 编译失败,CocoaPods无法find头文件

我有一个使用CocoaPods的iOS项目。 一切顺利,直到另一个开发人员开始在同一个项目上工作。 他做了一些改变(只知道我所知道的代码),并在回购中创build了一个新的分支。 我检查了他的分支,并试图build立它,但我得到一个错误:ASLogger / ASLogger.h文件未find。 即使我删除了整个项目并重新制作了一份,然后使用“豆荚安装”。 构build失败依然存在。 你有什么想法可以解决问题吗? 如果你需要更多的信息,请问。

我如何得到Git的提交计数?

我想得到我的Git仓库提交的数量,有点像SVN修订版本号。 目标是将其用作唯一的递增内部版本号。 我目前这样做,在Unix / Cygwin / msysGit上: git log –pretty=format:'' | wc -l 但是我觉得这有点破绽。 有没有更好的方法来做到这一点? 如果我实际上不需要wc甚至Git,那将会很酷,所以它可以在一个光秃秃的Windows上运行。 只要阅读一个文件或目录结构…

使用Maven复制文件的最佳做法

我使用Maven2将configuration文件和各种文档从开发环境复制到dev-server目录。 奇怪的是,Maven在这个任务上似乎并不强大。 一些选项: 在Maven中简单使用复制任务 <copy file="src/main/resources/config.properties" tofile="${project.server.config}/config.properties"/> 使用Ant插件从Ant执行复制 。 构造一个types为zip的工件,以及通常是jartypes的POM的“main”工件,然后将该工件从资源库解压到目标目录中。 maven-resources插件,如下所述。 Maven Assembly插件 – 但是这似乎需要大量的手动定义,当我想简单地和“常规”地做事时。 这个页面甚至展示了如何构build一个插件来复制! maven-upload插件,如下所述。 maven-dependency-plugin与副本 ,如下所述。 所有这些似乎是不必要的特别的:Maven应该擅长做这些标准的任务,没有大惊小怪。 任何build议?

C#编译器如何检测COMtypes?

编辑:我已经写了结果作为博客文章 。 C#编译器有点神奇地对待COMtypes。 例如,这个声明看起来很正常 Word.Application app = new Word.Application(); …直到你意识到Application是一个接口。 调用接口上的构造函数? Yoiks! 这实际上被转换成对Type.GetTypeFromCLSID()的调用,而另一个转换为Activator.CreateInstance 。 此外,在C#4中,您可以使用ref参数的非参数参数,编译器只是添加一个局部variables来引用传递,放弃结果: // FileName parameter is *really* a ref parameter app.ActiveDocument.SaveAs(FileName: "test.doc"); (是的,有一大堆参数丢失。是不是可选参数不错?:) 我试图调查编译器的行为,我没有假冒第一部分。 我可以做没有问题的第二部分: using System; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; [ComImport, GuidAttribute("00012345-0000-0000-0000-000000000011")] public interface Dummy { void Foo(ref int x); } class Test { static void Main() { Dummy dummy = […]

如何使用用Interface Builder创build的nib文件加载UIView

我试图做一些细致的事情,但应该是可能的。 所以这里是你所有的专家的挑战(这个论坛是你们很多的:))。 我正在创build一个调查问卷的“组件”,我想加载一个NavigationContoller (我的QuestionManagerViewController )。 “组件”是一个“空的” UIViewController ,它可以根据需要回答的问题加载不同的视图。 我这样做的方式是: 创buildQuestion1View对象作为UIView子类,定义一些IBOutlets 。 创build(使用界面生成器) Question1View.xib (这里是我的问题可能是 )。 我将UIViewController和UIView都设置为Question1View类。 我使用视图的组件(使用IB)链接sockets。 我重写我的QuestionManagerViewController的initWithNib看起来像这样: – (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) { // Custom initialization } return self; } 当我运行代码,我得到这个错误: 2009-05-14 15:05:37.152 iMobiDines [17148:20b]由于未捕获的exception' NSInternalInconsistencyException ',原因:' -[UIViewController _loadViewFromNibNamed:bundle:]加载了“Question1View”没有设置。 我敢肯定,有一种方法可以使用nib文件加载视图,而不需要创build一个viewController类。

重新签署IPA(iPhone)

我目前使用xcodebuild和xcrun构build所有我的应用程序与哈德森没有任何问题 我收到了来自不同人的几个IPA文件,我想用企业帐户而不是公司帐户(对于应用程序商店,或者有时临时分发)重新签名。 我的问题是,当我尝试辞职的应用程序,它不会安装在我的设备(它应该,因为它是一个企业版本)。 错误信息在设备上(不在iTunes中),它告诉我,它不能安装应用程序。 没有更多的信息给出。 我发现了一些信息,( http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-上传/ ) 这可能是可能的。 我面临的问题是,它似乎没有embedded移动configurationconfiguration文件,因为我用我的正常版本(使用xcrun)这样做可以使用codesign工具进行控制,或者是否可以用xcrun重新签名? 用我现在的辞职脚本 解压缩app.ipa appname = $(ls Payload) xcrun -sdk iphoneos PackageApplication -s“$ provisioning_profile”“$ project_dir / Payload / $ appname”-o“$ project_dir / app-resigned.ipa”–sign“$ provisioning_profile”–embed“$ mobileprovision” 我查看了生成的ipa文件,它看起来和原来的应用非常相似。 哪些文件应该在这里真正改变? 我最初认为_CodeSignature / CodeResources会改变,但内容看起来几乎完全一样。 指针非常感谢。

用自己的语言编写一个编译器

直观地看来, Foo语言的编译器似乎不能在Foo中编写。 更具体地说,语言Foo的第一个编译器不能在Foo中编写,但是任何后续的编译器都可以为Foo编写。 但这是真的吗? 对于第一个编译器本身写成的语言,我有一些非常模糊的回忆。 这是可能的,如果是的话如何?

为什么当我写入数组的末尾时,程序不会崩溃?

为什么下面的代码在运行时没有任何崩溃? 而且大小完全取决于机器/平台/编译器!! 我甚至可以在一台64位机器上使用200个。 如何在操作系统中检测到主函数中的段错误? void main(int argc, char* argv[]) { int arr[3]; arr[4] = 99; } 这个缓冲空间从哪里来? 这是分配给一个进程的堆栈吗?

“Interface Builder文件中的未知类<MyClass>”运行时出错

即使Interface Builder知道MyClass ,但在启动应用程序时出现错误。 这发生在MyClass是库的一部分时,如果我直接在应用程序目标中编译类,则不会发生这种情况。