小编Qui*_*lor的帖子

Lisp/Scheme中的自引用数据结构

有没有办法在lisp或scheme中构建一个自引用数据结构(比如带有周期的图形)?我之前从未想过它,但是由于缺乏进行破坏性修改的方法,我可以找不到任何简单的方法来制作它.这只是函数式语言的一个重要缺陷,如果是这样,那么像haskell这样的懒函数语言呢?

lisp scheme functional-programming graph data-structures

18
推荐指数
4
解决办法
3797
查看次数

如何确定Objective C中的数组索引?

我在Objective C中有两个数组,我需要找到什么索引,所以我可以将它插入到同一个地方.例如,假设我有一个"名字数组"和一个"年龄数组".如何找出"charlie"在"名称数组"中的索引,以便知道在"age"数组中插入年龄的位置?

谢谢

search cocoa objective-c nsmutablearray nsarray

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

在objective-c中定义一个常量

我想在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)

我对预编译器指令不太满意,所以任何帮助都将不胜感激.

constants objective-c

16
推荐指数
2
解决办法
3万
查看次数

如何从id获取BOOL

我在一个对象上调用valueForKey.这将返回一个我试图强制转换为BOOL的id(因为我知道该值是BOOL).但是XCode给出了以下警告:

"警告:从指针转换为不同大小的整数......"

所以我最终做的是这样的:

BOOL value = [[NSNumber numberWithInt:((NSInteger)[managedObject valueForKey:@"fieldName"])] boolValue];
Run Code Online (Sandbox Code Playgroud)

我认为必须有一个更简单的方法.在那儿?

iphone xcode cocoa objective-c

16
推荐指数
3
解决办法
2万
查看次数

将十六进制字符串转换为long

是否有任何Cocoa类可以帮助我将NSString中的十六进制值转换0x12FAlongNSNumber?它看起来不像任何NSNumberFormatter支持十六进制数的类.

谢谢,华英

string cocoa hex objective-c

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

Objective-C相当于Java包?

什么是Java包的Objective-C等价物?如何在Objective-C中分组和组织课程?

objective-c

15
推荐指数
1
解决办法
6958
查看次数

绑定自定义NSView:它是否需要创建IBPlugin?

我创建了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中公开绑定?对于我不打算重用的自定义视图来说,这似乎有些过分.

cocoa interface-builder nsview ibplugin cocoa-bindings

14
推荐指数
2
解决办法
5551
查看次数

如何将按钮的启用绑定绑定到NSArrayController是否有选择?

我想将NSButton的启用状态绑定到NSArrayController是否包含任何选定项.

我该怎么做呢?

cocoa state button cocoa-bindings

13
推荐指数
2
解决办法
3510
查看次数

可可缺少什么?

如果你可以向Cocoa添加任何东西,它会是什么?是否有任何功能,主要或次要,你会说在Cocoa中缺少.也许有一个轮子你不得不反复发明因为框架中的遗漏?

cocoa cocoa-touch api-design objective-c

13
推荐指数
2
解决办法
1494
查看次数

您是应该使用委托还是在类本身中将委托设置为nil

如果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)

delegates memory-management objective-c

13
推荐指数
3
解决办法
9622
查看次数