小编dan*_*dee的帖子

Clang:除了...之外,将所有警告提升为错误

在我目前的项目中 - 我可能会在一段时间内 - 继续工作,我们已经决定使用该-Werror标志,因为我们之前的"没有警告!"政策没有达到预期的效果.

然而,这带来了一个问题:

API不能再以a)被正常构建工具链标记的方式标记为已弃用,并且b)不会破坏构建.

所以我想这个问题归结为:

有旗帜-Werror-no-${something_I_dont_want_to_promote_to_an_error}吗?

我发现#pragma clang diagnostic error几乎达到我想要的-除了我不能赶上所有启用的警告,暗示由编译器...

提前致谢.

clang compiler-flags

17
推荐指数
1
解决办法
9284
查看次数

Xcode 4和版本控制 - 但是哪一个?

我有一个问题,答案在技术上并不是很难,但我更喜欢这里的大多数高级程序员的经验.

就像许多新手一样,我正在以最疯狂的方式进行版本控制,即复制粘贴我的项目目录并使用当前日期/时间重命名.你会同意这是一个非常有限的解决方案:P

我决定学习版本控制系统,但我面临很多选择,我想知道你的观点最好的是什么?

  • 使用Xcode集成版本控制(git或其他任何东西),组织者,克隆,xcode提交等.我的意思是完全或几乎由Xcode控制?
  • 忽略Xcode让他认为没有版本控制并在命令行中自己完成它?
  • 上面两个合并?怎么样 ?

然后 :

  • 用git?Github非常受欢迎且功能强大,但你必须学习git并努力学习.
  • Mercurial?看起来更友好.
  • 别的什么?

对于更有经验的人有一些反馈是无价的,所以我和其他许多人希望在面对VCS墙时可以选择他们的路径:-)

非常感谢 !!!

git version-control mercurial xcode

9
推荐指数
2
解决办法
2106
查看次数

NSDateFormatter和时区格式为"+ HH:mm"的字符串

更新

由于iOS的7,NSDateFormatter 确实当与此格式的字符串呈现的确创造一个NSDate:

NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateFormat:@"@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZ""];

NSLog(@"non–nil date, even honoring the 7–minute–offset in the time–zone on iOS 7: %@",
     [formatter dateFromString:@"2011-07-12T18:07:31+02:07"]);
Run Code Online (Sandbox Code Playgroud)

对于iOS 6,答案是不使用NSDateFormatter ......


好的,到目前为止我已经读过了

关于如何使用NSDateFormatter以创建NSDate一个字符串.

我偶然发现了Peter Hosey的ISO8601DateFormatter.
看看他的实施,我想知道:

是不是有什么办法,既正确理智来得到这样一个字符串2011-07-12T18:07:31+02:00NSDate

  • 如果最后一个冒号丢失就没问题了.
  • 如果有一个GMT前缀"+" - 符号,那将是没有问题的,但......
  • 事实并非如此.

我可以破解它为我的应用程序工作(使用格式@"yyyy'-'MM'-'dd'T'HH':'mm':'ssz':'00"),但这当然是不正确的,因为它会丢弃时区的分钟信息.

我也可以用空字符串替换最后一个冒号,但我也认为这也是一个黑客.

那么,是否有一些秘密的酱汁NSDateFormatter从上面拿出那根绳子给我一个有效和正确的NSDate


在旁边:

我找到了一个小贴士,可以+[NSDate dateWithNaturalLanguageString:] …

iso8601 nsdateformatter timezone-offset

6
推荐指数
1
解决办法
2115
查看次数

折叠/标准化连接(例如Æ到ae)使用(核心)基础

我正在编写一个帮助器,对输入字符串执行许多转换,以便创建该字符串的搜索友好表示.

考虑以下情况:

  • 全文搜索德语或法语文本
  • 数据存储区中的条目包含
    1. Müller
    2. Großmann
    3. Çingletòn
    4. Bjørk
    5. Æreogramme
  • 搜索应该是模糊的
    1. ull,Üll等比赛Müller
    2. Gros,groß等比赛Großmann
    3. cin 等.匹配 Çingletòn
    4. bjö,bjo等比赛Bjørk
    5. aereo 等.匹配 Æreogramme

到目前为止,我在案例(1),(3)和(4)中取得了成功.

我无法弄清楚的是如何处理(2)和(5).

到目前为止,我尝试了以下方法无济于事:

CFStringNormalize() // with all documented normalization forms
CFStringTransform() // using the kCFStringTransformToLatin, kCFStringTransformStripCombiningMarks, kCFStringTransformStripDiacritics
CFStringFold() // using kCFCompareNonliteral, kCFCompareWidthInsensitive, kCFCompareLocalized in a number of combinations -- aside: how on earth do I normalize simply _composing_ already decomposed strings??? as soon as I pack that in, my …
Run Code Online (Sandbox Code Playgroud)

unicode transform core-foundation foundation

6
推荐指数
1
解决办法
1233
查看次数

使用`self = [self init]`来包装其他`init message`

Objective-C/Cocoa中可接受/安全包装init方法如下:

-(id)init {
    if ((self=[super init])) {
         self.bar = [[Bar alloc] init];
    }
    return self;
}

-(id)initWithFoo:(Foo *)f {
    if ((self=[self init])) {
         self.foo = f;
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

注意[self init]initWithFoo.

也许这是一个简单的答案......似乎很明显,但不是标准的?

cocoa cocoa-touch objective-c

6
推荐指数
1
解决办法
2168
查看次数

Linux内核定时器子系统:精度与分辨率

我正在尝试测量部分Linux内核代码的执行时间,发现定时器有两个不同的子系统.hrtimers代表高分辨率计时器,hpet表示高精度事件计时器.

分辨率与精度有何不同?

http://www.mjmwired.net/kernel/Documentation/timers/

linux linux-kernel

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

使用--system-header-prefix和Xcode 5.1.1 - 我错过了什么

Clang的文档提到了一个名为的标志的可用性--system-header-prefix.

所有包含与此前缀匹配的标头的想法将被视为系统标头,而不会生成警告.

我想使用此标志而不是使用-isystem而不是包含那些标头-I.

背景

我碰巧有一个(新)项目依赖于几个遗留库,但它本身具有非常严格的警告设置,并将这些警告视为错误.结果是(并不太令人惊讶)由于包含的遗留库的标头生成的警告而无法构建的项目.

这个想法是--system-header-prefix=legacyLib/在Xcode的OTHER_CFLAGS构建设置中使用.

但是,如果我这样做,clang会给我以下错误消息:

clang: error: unsupported option '--system-header-prefix=legacyLib/'
Run Code Online (Sandbox Code Playgroud)

我使用的是版本5.1.1(5B1008) - 即当前的公开发布.

输出clang --version

clang --version
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

xcode clang

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