小编Ben*_*ter的帖子

宏观捕获自我块

我有下面的宏的问题,我用它来记录各种信息

#define JELogVerbose(fmt, ...)  
DDLogVerbose((@"%@ %@ - " fmt), NSStringFromClass([self class]),
                                NSStringFromSelector(_cmd), ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)

当在内部使用这个最终宏时会出现问题,它显然会强烈捕获自身,这可能是有问题的.

以下是解决方案的一些要求:

  1. 它可以是一个多行宏,您可以在其中定义weakSelf但不能解决它,因为您可以重新定义您创建的__weak指针.
  2. 使用__FILE____PRETTY_FUNCTION__因为它们捕获将捕获超类而不是子类.因此,对于用于创建许多实例的类的抽象,日志记录不区分每个实例.捕获当前类是绝对必要的
  3. 该解决方案只需要修改宏或其他一些全局配置选项来修复此问题,而无需添加额外的扩展库

macros weak-references self ios

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

访问Teamcity git在构建步骤中更改日志

作为我发布构建的构建步骤的一部分,我希望能够访问特定构建的更改日志.特别是git提交消息.

我不确定我是否可以在构建步骤中通过git执行此操作,或者使更改日志成为我可以访问的参数.任何帮助表示赞赏.

git bash teamcity

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

对象不释放目标C.

我无法理解为什么NSLog在代码运行时报告"dog".我理解保留计数和dealloc等我错过了什么简单的事情?

NSString *newFoo = @"dog";
 [newFoo release];
 NSLog(newFoo);
Run Code Online (Sandbox Code Playgroud)

memory-management objective-c

1
推荐指数
2
解决办法
394
查看次数