我正在做一个关于在Xcode中调试的演示文稿,并希望获得有关使用NSLog的更多信息.
特别是,我有两个问题:
在objective-c/cocoa中抛出异常的最佳方法是什么?
我希望能够调试C结构,而无需显式键入它们所包含的每个属性.
即我希望能够做这样的事情:
CGPoint cgPoint = CGPointMake(0,0);
NSLog(@"%@",cgPoint);
Run Code Online (Sandbox Code Playgroud)
显然'%@'不起作用,因此问题.
如何在objective-c中将NSMutableArray转换为NSArray ?
在我的Lion应用程序中,我有这个数据模型:

subitems里面的关系Item 是有序的.
的Xcode 4.1(建4B110)为我创建的文件Item.h,Item.m,SubItem.h和SubItem.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) 我刚刚开始编写Objective-C编程,并且具有Java背景,想知道编写Objective-C程序的人如何处理私有方法.
我理解可能存在一些惯例和习惯,并将此问题视为人们在Objective-C中使用私有方法的最佳技术的聚合器.
请在发布时为您的方法添加一个参数.它为什么好?它有哪些缺点(你知道)以及你如何处理它们?
至于到目前为止我的发现.
可以使用MyClass.m文件中定义的类别 [例如MyClass(Private)]来对私有方法进行分组.
这种方法有两个问题:
第一个问题可以解决空类 [例如MyClass()].
第二个困扰我很多.我希望在文件末尾附近实现(和定义)私有方法; 我不知道这是否可能.
我知道HIG(这非常方便!),但是在编写Objective-C时使用了什么编程实践,更具体地说,在使用Cocoa(或CocoaTouch)时.
objectForKey和之间有什么区别valueForKey?我在文档中查看了它们,它们对我来说似乎是一样的.
随着新手大量涌入Xcode,我确信有很多Xcode提示和技巧可供分享.
你的是什么?