在Xcode中,我想将项目包版本设置为git哈希,以在修订版本和构建版本之间创建唯一的链接.
(我已经看过几个关于这个的帖子,增加了每个构建的内部版本号,但对我来说这似乎过多了,我希望有一个构建号,测试者可以在发送者反馈时参考).
我在构建阶段添加了以下作为运行脚本:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion `git rev-parse --short HEAD`" *.plist
Run Code Online (Sandbox Code Playgroud)
然后我在代码中读出了包版本:
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
Run Code Online (Sandbox Code Playgroud)
但是,在下一次构建之前,新版本号不会出现在代码中.我假设这是因为我的脚本运行时编译器已经读取了plist文件.
此外,由于plist 在提交到git 之后用修订字符串更改,这会导致项目中出现令人讨厌的差异,所以也许我毕竟不是那么聪明.
另一种方法是将修订号写入git忽略的文本文件(build.txt).但我仍然希望项目内部版本编号也遵循git.
有人知道这样做的好方法吗?
当我这样做时port installed,我得到了数百项无用的清单.但是,其中只有少数是我实际安装的端口.其余的是我不需要直接联系的依赖项.
有没有办法只列出我实际安装的端口,即.我手动在命令行输入的那些?像顶级节点列表或安装历史文件或什么?
在php.ini我有:
extension_dir = "/usr/lib/php/extensions"
Run Code Online (Sandbox Code Playgroud)
但是,跑步php-config给出:
--extension-dir [/usr/lib/php/extensions/no-debug-non-zts-20090626]
Run Code Online (Sandbox Code Playgroud)
该目录不存在,我在Web上找不到任何有关它的信息.
有人能对这个奇怪的目录有所了解吗?
假设我为这样的域设置了nginx配置:
server {
root /path/to/one;
server_name one.example.org;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我想添加另一个具有不同内容的域,是否有一种方法可以重用上一个域中的等效语句,或者我是否必须为我想要支持的每个新域复制所有内容?
server {
root /path/to/two; # different
server_name two.example.org; # different
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试location在server闭包之外移动指令,但显然事情并不像那样,因为我在重启nginx时遇到错误"这里不允许使用位置指令".
运行以下语句,MySQL似乎混淆了:
select now(), if(false, date(now()), time(now()));
| 2013-07-24 10:06:21 | 2010-06-21 00:00:00 |
Run Code Online (Sandbox Code Playgroud)
如果用if文字字符串替换the的第二个参数,则该语句的行为正确:
select now(), if(false, 'Banana', time(now()));
| 2013-07-24 10:06:21 | 10:06:21 |
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是一些非常奇怪的怪癖?
有没有办法用Lua提取UTF-8编码字符串的第一个字母?
Lua没有正确支持Unicode,因此string.sub("ÆØÅ", 2, 2)将返回"?"而不是"Ø".
是否有一个相对简单的UTF-8解析算法,我可以在每个字节的字符串字节上使用,唯一的目的是获取字符串的第一个字母,无论是中文字符还是A?
或者这种方式过于复杂,需要庞大的图书馆等等?
在Xcode - > Organizer - > My iPhone - > Console中的iPhone控制台日志(参见下面的示例)中,有大量的低级系统调试通知被转储.
这有效地淹没了我自己的开发输出.(我正在使用第三方框架(不是Xcode)制作应用程序,所以我只使用Xcode来查看手机的控制台输出).
更糟糕的是,iPhone控制台日志似乎只返回一天或几百行顶部,所以如果我昨天崩溃,当我到办公室时,肯定会被详细的系统通知覆盖调试.
我怎样才能a)删除系统通知,b)延长日志的长度,c)将日志传送到bash终端,这样我就可以对它进行"grep",或者以任何其他方式更好地概述我自己的日志调试输出?
(例如,在Android上,您只能adb logcat -s MyApp查看来自MyApp的邮件)
这是一个淹没iPhone日志的东西的例子:
Dec 12 10:11:02 installd[31] <Error>: 0x2d5000 filter_attributes: Info.plist keys requested via MobileInstallationLookup/Browse in client Xcode (via mobile_installation_proxy) were not found in MobileInstallation's cache. Please file a bug requesting that these keys be added: <CFBasicHash 0x1d59e7a0 [0x3af630f0]>{type = mutable set, count = 18,
entries =>
0 : <CFString 0x3af4f9e4 [0x3af630f0]>{contents = "CFBundlePackageType"}
1 : <CFString 0x1d59e650 [0x3af630f0]>{contents = "BuildMachineOSBuild"}
2 …Run Code Online (Sandbox Code Playgroud) 当你在git中有合并冲突时,它们会像这样出现在文件中:
<<<<
old
old
====
new
new
>>>>
Run Code Online (Sandbox Code Playgroud)
现在,我有一些变化,origin/master我将合并到我的本地master分支.如果我只是正常合并它们,新行将很好地出现在文件中,因为没有冲突.
但是,我希望更改看起来像上面那些合并冲突,所以我可以看到冲突所在的新旧行,包围<<<<和>>>>,手动审查每个更改并删除应该消失的内容.
我如何"挑起"这样的冲突?
一种解决方法是做git diff -U999999 original.txt > review.txt,但你必须删除了很多-,并+在每行开头审查文件时字符.
简单地说:我如何避免!在下面的Swift代码中为每一行写作?我考虑过guard,但是UITableViewCell初始化器可以返回nil,但另一方面cellForRowAtIndexPath 必须返回非nil,这本身就是一个矛盾.希望有一个简短而甜蜜的方式.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier)
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: reuseIdentifier)
}
cell!.textLabel?.text = ...
cell!.textLabel?.textColor = ...
cell!.detailTextLabel?.textColor = ...
cell!.detailTextLabel?.textColor = ...
return cell!
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
PHP中的后期静态绑定究竟是什么?
在这个例子中,PHP将打印"NO"而不是"YES",与我的预期相反.
如果我删除static的function c(),更换self::同$this->做$e = new B; $e->c();,事情很快就会过去.
这是否意味着需要实例化才能使父类中的函数调用继承类中的重写函数?
(附带问题:这是一个PHP怪癖,还是这个逻辑也适用于大多数其他编程语言?如果是这样,它背后的理由是什么?)
class A {
static function c() {
self::d();
}
static function d() {
echo "NO :(\n";
}
}
class B extends A {
static function d() {
echo "YES :)\n";
}
}
B::c();
Run Code Online (Sandbox Code Playgroud)