小编Sed*_*ien的帖子

Git责备 - 事先提交?

是否有可能报告提交之前查看谁编辑了特定行git blame,例如给定行的提交历史记录?

例如,我运行以下(在极好的uncrustify项目上):

$ git blame -L10,+1 src/options.cpp
^fe25b6d (Ben Gardner 2009-10-17 13:13:55 -0500 10) #include "prototypes.h"
Run Code Online (Sandbox Code Playgroud)

如何提交之前找出谁编辑了该行fe25b6d?又是谁之前编辑它承诺?

git commit blame

366
推荐指数
9
解决办法
9万
查看次数

内存映射文件和低内存方案

在低内存情况下,iOS平台如何处理内存映射文件?在低内存情况下,我的意思是操作系统将UIApplicationDidReceiveMemoryWarningNotification通知发送给应用程序中的所有观察者.

我们的文件使用+[NSData dataWithContentsOfMappedFile:]以下文档映射到内存中:

映射文件使用虚拟内存技术来避免将文件页面复制到内存中,直到实际需要它们为止.

这是否意味着操作系统也会在页面不再使用时取消映射?是否可以将页面标记为不再使用?如果更改方案,则此数据是只读的.如果我们mmap()直接使用怎么样?这会更好吗?

memory-management low-memory memory-mapped-files ios

38
推荐指数
3
解决办法
1万
查看次数

UICollectionView中的UIViewController

UICollectionView我的应用程序中有一个全屏幕.它水平滚动,每个单元格填充集合视图的边界.集合视图由a管理UIViewController.

鉴于每个"页面"都相当复杂,因此每个页面本身都需要由关联管理UIViewController.iOS 5支持视图控制器包含,因此子viewWillAppear:视图在附加和分离视图时应该接收适当的生命周期方法(例如,等).这种视图回收有多好?

从页面"1"滚动到"2",将创建一个新视图(因为在触摸期间两者可能同时在屏幕上).从页面"2"移动到"3",UICollectionView可以成功地使页面"1"的视图出列,但现在发生了什么?我会强制将视图插入视图控制器三吗?

id cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ident" forIndexPath:indexPath];
UIViewController *child_controller = [self controllerAtIndexPath:indexPath];
[child_controller setView:cell];
// ... and so on
Run Code Online (Sandbox Code Playgroud)

这感觉不对.但是,我无法想到在这种情况下正确重用视图的正确方法.我完全采取了错误的做法吗?

uiviewcontroller ios uicollectionview

19
推荐指数
3
解决办法
7609
查看次数

用于Objective-C开发的Lint检查工具

具有多个开发人员的大型项目通常会导致代码在样式上不一致.我正在寻找一种适合Objective-C的类似于lint的工具,它超出了Clang Static Analyzer的范围,并检查是否符合风格惯例; 例如大括号,缩进,注释格式,在函数顶部声明变量等.

我知道AnalysisTool,但它并没有完全像我追求的那样.我在其他地方看到了这个问题,但不清楚问题提问者是否在追求同样的事情.

这样的工具存在吗?

cocoa static-analysis lint objective-c

15
推荐指数
2
解决办法
7361
查看次数

C++名称手工修改

我正在使用插件在Python中为IDA Pro反汇编程序编写脚本idapython.使用此功能,我可以填补IDA自动分析不足的空白.

令我难以理解的一个领域是命名位置/功能(为了更好的术语)"漂亮的名字".我的意思的一个例子如下图所示:

IDA漂亮的名字样本截图

idapython和IDA Pro本身只允许我输入基本的C-ish函数名称.如果我输入不允许的符号(例如范围解析运算符),则将它们替换为下划线.但是,如果我手工输入一个受损的名字(例如__ZN9IOService15powerChangeDoneEm),IDA Pro 为我美化这个.

因此我的问题是:如何生成错位名称idapython?有可用的名称库吗?有一个在Python中可用吗?我唯一的希望是将破坏功能从中解决g++并解决这个问题吗?

c++ python name-mangling ida

10
推荐指数
1
解决办法
3224
查看次数

Objective-C 2.0 ABI规范

Objective-C 2.0 ABI的文档是否存在于Internet上的某个位置?该发行说明objc4-493.9说:

即将出版的文档将仅描述使用编译器和开发人员工具的ABI.

它已经发布了吗?最接近的此类引用是Apple的Objective-C运行时引用,但这仅描述面向公众的API而不是实现细节.事实上,它甚至提到了ABI:

此外,新的Objective-C ABI(此处未描述)[...]

不幸的是,新的ABI在上述文本中没有超链接.:-)是我唯一的选择,以了解objc4运行时和Clang的CGObjCNonFragileABIMac代码生成项目的源代码?

objective-c abi language-specifications

9
推荐指数
1
解决办法
1079
查看次数

C w/Blocks:基于堆栈的块超出范围

在Apple的一个头文件中libdispatch,queue.h出现以下警告:

// The declaration of a block allocates storage on the stack. 
// Therefore, this is an invalid construct:

dispatch_block_t block;

if (x) {
    block = ^{ printf("true\n"); };
} else {
    block = ^{ printf("false\n"); };
}
block(); // unsafe!!!

// What is happening behind the scenes:

if (x) {
    struct Block __tmp_1 = ...; // setup details
    block = &__tmp_1;
} else {
    struct Block __tmp_2 = ...; // setup details
    block = &__tmp_2; …
Run Code Online (Sandbox Code Playgroud)

c grand-central-dispatch objective-c-blocks

8
推荐指数
1
解决办法
369
查看次数

OS X上C标准库的线程安全性

在Mac OS X的C标准库实现中是否有一个确定的线程安全功能列表?

关于功能和功能,这里有一个很好的答案,但是我没有找到关于OS X的任何这样的资源.有这样的事情吗?glibcf*()

例如,是strptime()strftime()线程安全的?printf()?这些可能有内部缓冲区,我不想搞砸.:)

c macos standard-library thread-safety

8
推荐指数
1
解决办法
1153
查看次数

使用Clang将关键字添加到Objective-C

我如何使用Clang编译器向Objective-C添加一个相对简单的关键字?例如,添加@yes映射到的文字[NSNumber numberWithBool:YES].

我查看了Clang的(优秀)源代码,并相信我需要做的大部分工作都在lib/Rewrite/RewriteObjC.cpp.有一种方法RewriteObjC::RewriteObjCStringLiteral(参见上一个链接),它为文字NSString *实例执行类似的工作.

我问这个问题,因为Clang是非常模块化的,我不确定哪个.td(参见tablegen)文件,.h文件和AST访问者通行证我需要修改以实现我的目标.

compiler-construction objective-c llvm clang keyword

7
推荐指数
1
解决办法
398
查看次数

幂等git rebase因虚假冲突而失败?

我的git存储库有大约2,000个提交.出于教育目的,我一直在玩git rebase -i.

当我键入git rebase -i first-commit(其中first-commit是对repo的初始提交的标记)并且根本不改变任何内容(即pick <hash>保持全部不变)时,git开始重放我的历史记录,但是由于引发冲突而导致数十次提交失败.什么会导致这个?为什么不简单地重播我的整个历史?

git git-rebase

7
推荐指数
1
解决办法
333
查看次数