小编dre*_*lax的帖子

你在哪里放置NSDocument子类的清理代码?

我有一个基于文档的应用程序,我已经分类NSDocument并提供了所需的方法,但我的文档需要一些广泛的清理(需要运行外部任务等).把它放在哪里最好的地方?我尝试过几种不同的方法,例如:

  • close
  • close:
  • canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
  • dealloc

如果我把它放入dealloc,有时它会被调用,有时它不会被调用(按下Command + Q似乎绕过我的文件的释放),但是必须在没有失败的情况下调用此代码(除非程序意外终止).

macos cocoa document-based nsdocument

8
推荐指数
2
解决办法
2274
查看次数

外壳中的棘手支撑扩展

使用POSIX shell时,如下所示

touch {quick,man,strong}ly
Run Code Online (Sandbox Code Playgroud)

扩展到

touch quickly manly strongly
Run Code Online (Sandbox Code Playgroud)

哪个会触及文件quickly,manlystrongly,但是可以动态创建扩展吗?例如,以下说明我想要做什么,但由于扩展顺序不起作用:

TEST=quick,man,strong    #possibly output from a program
echo {$TEST}ly
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?如果需要,我不介意将自己限制在Bash.我也想避免循环.扩展应该作为任意程序的完整参数给出(即,对于每个文件,程序不能被调用一次,对于所有文件只能调用一次).我知道xargs但我希望它能以某种方式从shell中完成.

bash shell brace-expansion

8
推荐指数
1
解决办法
3286
查看次数

Objective-c类的默认init方法?

我有两种不同的方法来初始化我的objective-c类.一个是默认值,一个是配置参数.现在,当谈到objective-c时我很绿,但是我已经实现了这些方法,我想知道是否有更好的(更正确/更好的风格)方式来处理初始化而不是我的方式.意思是,我是否按照标准和良好的风格编写了这些初始化函数?它只是不正确检查是否存在selfPtr然后基于此返回.

下面是我的类头和实现文件.此外,如果你发现任何其他错误或邪恶的东西,请告诉我.我是一名C++/Javascript开发人员,他正在学习Objective-c作为业余爱好,并感谢您提供的任何提示.

#import <Cocoa/Cocoa.h>

// class for raising events and parsing returned directives

@interface awesome : NSObject {
 // silence is golden. Actually properties are golden. Hence this emptiness.
}

// properties
@property (retain) SBJsonParser* parser;
@property (retain) NSString* eventDomain;
@property (retain) NSString* appid

// constructors
-(id) init;
-(id) initWithAppId:(id) input;

// destructor
-(void) dealloc;


@end
Run Code Online (Sandbox Code Playgroud)
#import "awesome.h"
#import "JSON.h"


@implementation awesome



- (id) init {
 if (self = [super init]) {
  // if init is called directly, …
Run Code Online (Sandbox Code Playgroud)

macos initialization objective-c

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

使用C在套接字编程中获取请求的地址

我正在使用这样的东西来创建一个使用C的服务器.当我127.0.0.1:5000从浏览器访问时,我可以看到"Hello Worlds"我将其作为缓冲区发送.但我想127.0.0.1:5000/filename.html工作.但我不知道如何在C filename之后得到它127.0.0.1:5000.

我正在使用它来建立连接:

  serv_addr.sin_family = AF_INET;
  serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  serv_addr.sin_port = htons(5000);

  bind(listenfd, (struct sockaddr*)&serv_addr,sizeof(serv_addr));

  connfd = accept(listenfd, (struct sockaddr*)NULL ,NULL);
Run Code Online (Sandbox Code Playgroud)

c sockets http httpserver

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

什么是解释垃圾收集如何工作的简单方法?

我的注意力很短,所以我无法完成维基百科的文章.

我知道有几种垃圾收集技术,但常见的是"可达性"测试,其中一个对象的收集资格是基于它是否可以被一个有根对象"到达"(根据我的理解,这是一个已知不需要收集的对象).当你想知道某个对象是否可以访问时,你会怎么做呢?你怎么知道在哪里看?

显然,收集器必须知道所有已分配的对象和有根对象.它如何确定每个对象的可达性?

language-agnostic garbage-collection

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

修剪字符串向量

我有一个std::vectorstd::strings含有类似这样的数据:

[0] = ""
[1] = "Abc"
[2] = "Def"
[3] = ""
[4] = "Ghi"
[5] = ""
[6] = ""
Run Code Online (Sandbox Code Playgroud)

如何获得包含从 1 到 4 的 4 个字符串的向量?(即我想从向量的开头和结尾修剪所有空白字符串):

[0] = "Abc"
[1] = "Def"
[2] = ""
[3] = "Ghi"
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用一个正向迭代器来让我的方式"Abc"和反向迭代器让我的方式回到我的方式"Ghi",然后使用这些迭代器构建一个新的向量。这种方法有效,但我想知道是否有更简单的方法来修剪这些元素。

PS我是一个C++菜鸟。

编辑

另外,我应该提到向量可能完全由空白字符串组成,在这种情况下,0 大小的向量将是所需的结果。

c++ string vector

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

在CVS预提交挂钩中使用提交消息

是否可以在CVS的预提交钩子中使用提交消息?CVS服务器正在远程运行,我使用它来访问它pserver.

理想情况下,如果文件通过过滤器提交消息包含某些文本,我想允许提交.

我没有选择使用其他版本控制系统.

cvs version-control commit pre-commit-hook

5
推荐指数
1
解决办法
5918
查看次数

标签开头的自动省略号

我的表单上有一个标签,用于显示路径。有时路径太长而无法显示,因此我打开了自动省略,但它似乎总是截断字符串的末尾(这是我的特定情况下更相关的部分)。有什么办法让它自动截断开头吗?

是否有其他控件可用于显示路径?

c# winforms

5
推荐指数
1
解决办法
2475
查看次数

Objective-C中帧的水平翻转

我正在尝试为我的程序(流式传输网络摄像头)创建一个过滤器,使框架水平翻转,使网络摄像头就像一面镜子.

但是,在编译和运行时,过滤器似乎对它没有任何影响.

这是代码:

CIImage *resultImage = image;
CIFilter *flipFilter = [CIFilter filterWithName:@"CIAffineTransform"];
[flipFilter setValue:resultImage forKey:@"inputTransform"];

NSAffineTransform* flipTransform = [NSAffineTransform transform];
[flipTransform scaleXBy:-1.0 yBy:1.0]; //horizontal flip
[flipFilter setValue:flipTransform forKey:@"inputTransform"];

resultImage = [flipFilter valueForKey:@"outputImage"];
Run Code Online (Sandbox Code Playgroud)

奇怪的是,其他过滤器似乎也有效.例如:

CIFilter * ciEffectFilter = [CIFilter filterWithName:@"CIGloom"];
[ciEffectFilter setDefaults];
CIImage *resultImage = image;
[ciEffectFilter setValue: resultImage forKey:@"inputImage"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 0.75]
                  forKey:@"inputIntensity"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 20]
                  forKey:@"inputRadius"];
resultImage = [ciEffectFilter valueForKey:@"outputImage"];


CIFilter *ciCropFilter = [CIFilter filterWithName:@"CICrop"];
[ciCropFilter setDefaults];
[ciCropFilter setValue: resultImage forKey:@"inputImage"];
[ciCropFilter setValue: [CIVector vectorWithX:50 Y:50 Z:300 …
Run Code Online (Sandbox Code Playgroud)

core-graphics objective-c core-image

4
推荐指数
1
解决办法
4632
查看次数

强调后游戏崩溃了

我现在的游戏遇到了麻烦,当我过分强调时它会不断崩溃.意思是我疯狂地滑动,移动或敲击屏幕上的手指,它会崩溃.崩溃没有规则.我试图检测,在控制台日志中显示消息低内存警告.我知道这是关于内存的东西,但我使用Cocos2D来制作这个游戏,我按照最佳实践的说明进行操作.之后看起来更顺畅,但如果我喜欢上面提到的话,它仍然会崩溃.如果像Cocoa一样,我们有alloc和release,但它是Cocos2D,我想我们不需要这样做.我的游戏只是加载图片,触摸后制作动画.

//where the fingers ended , this will determine the correct actions made. 
-(BOOL)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)events
{
    int touchCount = 0;
    NSSet *allTouches3 = [events allTouches];
    for( UITouch *touch in allTouches3)
    {
        location3 = [touch locationInView: [touch view]];
        location3 = [[Director sharedDirector] convertCoordinate: location3];

        NSLog(@"end TOUCHed x2: %3.3f, y2: %3.3f",location3.x,location3.y);
        touchCount++;
    }
    [self removeChildByTag:kTagWord cleanup:YES]; 

    timeEnd = [NSDate timeIntervalSinceReferenceDate];
    touchDuration = timeEnd - timeStart;
    //float rangeX = location3.x - location.x;
    rangeY2 = location3.y - location.y;

    //loading the succesful opened …
Run Code Online (Sandbox Code Playgroud)

objective-c

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