标签: cocoa

如何打印方法名称和行号并有条件地禁用NSLog?

我正在做一个关于在Xcode中调试的演示文稿,并希望获得有关使用NSLog的更多信息.

特别是,我有两个问题:

  • 有没有办法轻松NSLog当前方法的名称/行号?
  • 有没有办法在编译发布代码之前轻松"禁用"所有NSLog?

xcode cocoa cocoa-touch objective-c nslog

446
推荐指数
11
解决办法
14万
查看次数

在objective-c/cocoa中抛出异常

在objective-c/cocoa中抛出异常的最佳方法是什么?

cocoa exception-handling objective-c

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

NSLog C结构是否可能(如CGRect或CGPoint)?

我希望能够调试C结构,而无需显式键入它们所包含的每个属性.

即我希望能够做这样的事情:

CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Run Code Online (Sandbox Code Playgroud)

显然'%@'不起作用,因此问题.

c cocoa cocoa-touch objective-c

410
推荐指数
7
解决办法
10万
查看次数

375
推荐指数
5
解决办法
19万
查看次数

NSOrderedSet生成的访问器抛出异常

在我的Lion应用程序中,我有这个数据模型:

在此输入图像描述

subitems里面的关系Item 是有序的.

的Xcode 4.1(建4B110)为我创建的文件Item.h,Item.m,SubItem.hSubItem.h.

以下是内容(自动生成)Item.h:

#import <Foundation/Foundation.h>

#import <CoreData/CoreData.h>

@class SubItem;

@interface Item : NSManagedObject {
@private
}

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSOrderedSet *subitems;
@end

@interface Item (CoreDataGeneratedAccessors)

- (void)insertObject:(SubItem *)value inSubitemsAtIndex:(NSUInteger)idx;
- (void)removeObjectFromSubitemsAtIndex:(NSUInteger)idx;
- (void)insertSubitems:(NSArray *)value atIndexes:(NSIndexSet *)indexes;
- (void)removeSubitemsAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectInSubitemsAtIndex:(NSUInteger)idx withObject:(SubItem *)value;
- (void)replaceSubitemsAtIndexes:(NSIndexSet *)indexes withSubitems:(NSArray *)values;
- (void)addSubitemsObject:(SubItem *)value;
- (void)removeSubitemsObject:(SubItem *)value;
- (void)addSubitems:(NSOrderedSet *)values;
- …
Run Code Online (Sandbox Code Playgroud)

cocoa core-data xcode4

364
推荐指数
11
解决办法
5万
查看次数

在Objective-C中为类定义私有方法的最佳方法

我刚刚开始编写Objective-C编程,并且具有Java背景,想知道编写Objective-C程序的人如何处理私有方法.

我理解可能存在一些惯例和习惯,并将此问题视为人们在Objective-C中使用私有方法的最佳技术的聚合器.

请在发布时为您的方法添加一个参数.它为什么好?它有哪些缺点(你知道)以及你如何处理它们?


至于到目前为止我的发现.

可以使用MyClass.m文件中定义的类别 [例如MyClass(Private)]来对私有方法进行分组.

这种方法有两个问题:

  1. Xcode(和编译器?)不检查您是否在相应的@implementation块中定义私有类别中的所有方法
  2. 你必须把@interface声明你的私人类别在MyClass.m文件的开头,否则Xcode会抱怨"自己可能没有回复消息"privateFoo".

第一个问题可以解决空类 [例如MyClass()].
第二个困扰我很多.我希望在文件末尾附近实现(和定义)私有方法; 我不知道这是否可能.

cocoa objective-c code-completion

352
推荐指数
5
解决办法
17万
查看次数

编写Objective-C和Cocoa时使用的最佳实践是什么?

我知道HIG(这非常方便!),但是在编写Objective-C时使用了什么编程实践,更具体地说,在使用Cocoa(或CocoaTouch)时.

iphone cocoa cocoa-touch objective-c ios

346
推荐指数
31
解决办法
12万
查看次数

我如何使用NSTimer?

我该如何使用NSTimer?谁能给我一步一步的指示?

cocoa objective-c nstimer

344
推荐指数
5
解决办法
51万
查看次数

objectForKey和valueForKey之间的区别?

objectForKey和之间有什么区别valueForKey?我在文档中查看了它们,它们对我来说似乎是一样的.

cocoa objective-c key-value-coding

343
推荐指数
4
解决办法
11万
查看次数

Xcode的隐藏功能

随着新手大量涌入Xcode,我确信有很多Xcode提示和技巧可供分享.

你的是什么?

macos xcode cocoa objective-c

338
推荐指数
66
解决办法
24万
查看次数