有没有办法在lisp或scheme中构建一个自引用数据结构(比如带有周期的图形)?我之前从未想过它,但是由于缺乏进行破坏性修改的方法,我可以找不到任何简单的方法来制作它.这只是函数式语言的一个重要缺陷,如果是这样,那么像haskell这样的懒函数语言呢?
我在Objective C中有两个数组,我需要找到什么索引,所以我可以将它插入到同一个地方.例如,假设我有一个"名字数组"和一个"年龄数组".如何找出"charlie"在"名称数组"中的索引,以便知道在"age"数组中插入年龄的位置?
谢谢
我想在objective-c中定义一个常量.
以前我有以下功能:
+(NSString *) getDocumentsDir {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex: 0];
paths = nil;
return documentsDir;
}
Run Code Online (Sandbox Code Playgroud)
我想只定义一个常量"Documents_Dir" - 当函数被调用时,之后访问以前创建的值.
我尝试了以下代码,但没有用:
#define getDocumentsDir \
{ \
#ifdef Documents_Dir \
return Documents_Dir; \
#else \
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); \
NSString *documentsDir = [paths objectAtIndex: 0]; \
#define Documents_Dir [paths objectAtIndex: 0]; \
paths = nil; \
return Documents_Dir; \
#endif \
} \
Run Code Online (Sandbox Code Playgroud)
我对预编译器指令不太满意,所以任何帮助都将不胜感激.
我在一个对象上调用valueForKey.这将返回一个我试图强制转换为BOOL的id(因为我知道该值是BOOL).但是XCode给出了以下警告:
"警告:从指针转换为不同大小的整数......"
所以我最终做的是这样的:
BOOL value = [[NSNumber numberWithInt:((NSInteger)[managedObject valueForKey:@"fieldName"])] boolValue];
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更简单的方法.在那儿?
是否有任何Cocoa类可以帮助我将NSString中的十六进制值转换0x12FA为long或NSNumber?它看起来不像任何NSNumberFormatter支持十六进制数的类.
谢谢,华英
什么是Java包的Objective-C等价物?如何在Objective-C中分组和组织课程?
我创建了NSView的子类来将图像绘制为模式:
@interface CePatternView : NSView
{
NSImage* image;
id observableObjectForImage;
NSString* keyPathForImage;
}
@end
Run Code Online (Sandbox Code Playgroud)
我实现了以下内容来公开绑定:
+ (void)initialize
{
// Expose the "image" binding to IB.
[self exposeBinding:@"image"];
}
- (Class)valueClassForBinding:(NSString *)binding
{
if([binding isEqualToString:@"image"])
return [NSImage class];
return nil; // Unknown binding
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,图像绑定不会出现在Interface Builder中.
我是否真的必须创建一个IBPlugin来在Interface Builder中公开绑定?对于我不打算重用的自定义视图来说,这似乎有些过分.
我想将NSButton的启用状态绑定到NSArrayController是否包含任何选定项.
我该怎么做呢?
如果你可以向Cocoa添加任何东西,它会是什么?是否有任何功能,主要或次要,你会说在Cocoa中缺少.也许有一个轮子你不得不反复发明因为框架中的遗漏?
如果A类正在使用B类而A类是B类的委托,那么如果在B类的dealloc中将委托设置为nil,那么它可以吗?我已经看到代码通常会将代理重置为类A的dealloc中的nil,但不确定这样或那样的真正区别.
这是通常的方式:
// somewhere in class A
- (void) someFunc {
self.b = [[B alloc] init];
self.b.delegate = self;
}
- (void) dealloc {
self.b.delegate = nil;
[self.b release];
}
Run Code Online (Sandbox Code Playgroud)