小编neo*_*eye的帖子

bzr init-repo和多个项目

我理解困难bzr init-repo.

我想在他们自己的孤立存储库中拥有3个项目,在subversion中我将使用svnadmin create三次来创建它们.像这样:

svnadmin create MyProject
svnadmin create MyHomepage
svnadmin create MyDocuments
Run Code Online (Sandbox Code Playgroud)

以上将给出3个孤立的subversion存储库.

如何创建3个独立的共享集市存储库?

你会这样做吗?

bzr init-repo ./repo
bzr init ./repo/MyProject
bzr init ./repo/MyHomepage
bzr init ./repo/MyDocuments
Run Code Online (Sandbox Code Playgroud)

或者你会这样做吗?

bzr init-repo ./MyProject
bzr init ./MyProject/trunk

bzr init-repo ./MyHomepage
bzr init ./MyHomepage/trunk

bzr init-repo ./MyDocuments
bzr init ./MyDocuments/trunk
Run Code Online (Sandbox Code Playgroud)

或者还有另一种方式吗?

dvcs bazaar

5
推荐指数
2
解决办法
1386
查看次数

如何在保留inode的同时更改符号链接目标

通常,要更改符号链接目标,首先取消链接文件,然后使用新目标路径重新创建符号链接.但是,它将被分配一个新的inode编号.

也许有一个私有的Mac api update_target_for_symlink()功能,所以inode可以保持不变?

如果你想知道我需要它...文件管理器.我怀疑这是否可能.无论如何这就是它的有趣之处.

macos symlink inode unlink

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

Swift相当于Ruby的"each_cons"

红宝石

Ruby有each_cons可以像这样使用

class Pair
    def initialize(left, right)
        @left = left
        @right = right
    end
end
votes = ["a", "b", "c", "d"]
pairs = votes.each_cons(2).map { |vote| Pair.new(*vote) }
p pairs
# [#<Pair @left="a", @right="b">, #<Pair @left="b", @right="c">, #<Pair @left="c", @right="d">]
Run Code Online (Sandbox Code Playgroud)

迅速

swift中的代码相同,但没有each_cons函数

struct Pair {
    let left: String
    let right: String
}
let votes = ["a", "b", "c", "d"]
var pairs = [Pair]()
for i in 1..<votes.count {
    let left = votes[i-1]
    let right = votes[i] …
Run Code Online (Sandbox Code Playgroud)

ruby arrays enumerator equivalent swift

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

Swift相当于Ruby的"Pathname.relative_path_from"

Ruby的Pathname.relative_path_from文档.

在objc中已经有KSFileUtilities的ks_stringRelativeToURL方法,非常接近.我正在寻找可以在Linux上运行的纯粹快速解决方案.

我更喜欢使用file://URL的解决方案,但String也很好.

文件系统可以区分大小写/不区分大小写.确定相对路径可能很棘手.

输入和预期输出的示例:

| Long Path                      | Relative to Path | Return Value      |
|--------------------------------|------------------|-------------------|
| /usr/X11/agent/47.gz           | /usr/X11         | agent/47.gz       |
| /usr/share/man/meltdown.1      | /usr/share/cups  | ../man/meltdown.1 |
| file:///var/logs/x/y/z/log.txt | file:///var/logs | x/y/z/log.txt     |
Run Code Online (Sandbox Code Playgroud)

Swift已经有了FileManager.getRelationship(_:of:in:toItemAt :),但它没有返回相对路径.

url nsurl nsfilemanager swift server-side-swift

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

如何将符号链接移动到垃圾箱?

我没有看到FSPathMoveObjectToTrashSync()没有关注链接的功能选项.

这是我尝试过的

创建链接和文件

[ 21:32:41 /tmp ] $ touch my_file
[ 21:32:45 /tmp ] $ ln -s my_file my_link
[ 21:32:52 /tmp ] $ la
total 8
drwxrwxrwt   12 root     wheel   408 17 Maj 21:32 .
drwxr-xr-x@   6 root     wheel   204  9 Sep  2009 ..
-rw-r--r--    1 neoneye  wheel     0 17 Maj 21:32 my_file
lrwxr-xr-x    1 neoneye  wheel     7 17 Maj 21:32 my_link -> my_file
Run Code Online (Sandbox Code Playgroud)

将链接移动到垃圾箱

OSStatus status = FSPathMoveObjectToTrashSync(
    "/tmp/my_link",
    NULL,
    kFSFileOperationDefaultOptions
);
NSLog(@"status: %i", (int)status);
Run Code Online (Sandbox Code Playgroud)

输出是 …

cocoa symlink recycle-bin core-services

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

重命名iCloud文档

问题

到目前为止我所拥有的是创建新本地文件并删除iCloud文件的代码.

是否可以重命名iCloud文档,以便它保留在iCloud中?

GarageBand可以做到.可以重命名iCloud歌曲.重命名完成后,歌曲仍然在iCloud中.然而,GarageBand是Apple应用程序,因此它可能使用私有api.

我目前的代码:

- (void)moveFrom:(NSURL*)sourceURL
          moveTo:(NSString*)destinationName
      completion:(void (^)())completion
{
    MyDocument *document = [[MyDocument alloc] initWithFileURL:sourceURL];
    [document openWithCompletionHandler:^(BOOL success)
    {
        NSURL *fileURL = [self.localRoot URLByAppendingPathComponent:destinationName];
        DLog(@"Create %@", fileURL);
        [document saveToURL:fileURL
           forSaveOperation:UIDocumentSaveForCreating
          completionHandler:^(BOOL success)
        {
            NSLog(@"Saved %@", fileURL);
            [document closeWithCompletionHandler:^(BOOL success) {
                // Delete the old document from a secondary thread
                dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^()
                {
                    NSFileCoordinator* fileCoordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
                    [fileCoordinator coordinateWritingItemAtURL:sourceURL
                                                        options:NSFileCoordinatorWritingForDeleting
                                                          error:nil
                                                     byAccessor:^(NSURL* writingURL) {
                        NSFileManager* fileManager = [[NSFileManager alloc] init];
                        [fileManager removeItemAtURL:writingURL error:nil];
                        DLog(@"Deleted %@", sourceURL); …
Run Code Online (Sandbox Code Playgroud)

nsfilemanager ios icloud uidocument nsfilecoordinator

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

bzr checkout vs. bzr get

我想知道它们之间有什么区别

bzr checkout ./MyProject MyProject.dev
# later followed by a
cd MyProject.dev
bzr pull ../MyProject
Run Code Online (Sandbox Code Playgroud)

bzr get ./MyProject MyProject.dev
# later followed by
cd MyProject.dev
bzr pull
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以说唯一的区别是:

  1. bzr get 设置拉动位置.
  2. bzr checkout 不设置拉动位置,因此必须在第一次拉动时指定.

还有其他差异吗?

dvcs bazaar

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

addSubview和autosizing

如何为窗口添加视图,以便调整视图大小以适应窗口框架?

问题

我正在制作一个包含2个视图的工作表窗口,其中一次只能看到其中一个视图,因此视图与窗口大小相同非常重要.我的问题是view0正确匹配而view1没有,反之亦然.我无法弄清楚如何给它们与窗口相同的大小.

可能解决方案

我可以确保两个视图在Interface Builder中具有完全相同的大小,然后它就可以工作了.但是,我正在寻找一种以编程方式执行此操作的方法.


view0的屏幕截图

下面您可以看到顶部和右侧的自动调整问题,其中视图以某种方式被剪切.

view0


view1的屏幕截图

此视图已正确调整大小.

厂景


这是我的代码

可以在将视图添加到窗口之前调整视图的大小.或者我现在做的更好,在改变窗口框架的同时逐个添加视图.你怎么做呢?

NSView* view0 = /* a view made with IB */;
NSView* view1 = /* another view made with IB */;
NSWindow* window = [self window];

NSRect window_frame = [window frame];

NSView* cv = [[[NSView alloc] initWithFrame:window_frame] autorelease];
[window setContentView:cv];
[cv setAutoresizesSubviews:YES];

// add subview so it fits within the contentview frame
{
    NSView* v = view0;
    [v setHidden:YES];
    [v setAutoresizesSubviews:NO];
    [cv addSubview:v];
    [v setFrameOrigin:NSZeroPoint];
    [window setFrame:[v frame] display:NO]; …
Run Code Online (Sandbox Code Playgroud)

cocoa interface-builder autosize nsview nswindow

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

捕获不起作用以及如何取消设置异常处理程序

catch无效,因为使用set_exception_handler()安装了异常处理程序

我需要"捕获"才能工作,所以我想我需要以某种方式取消设置异常处理程序.诸如set_exception_handler(NULL)之类的东西不起作用.

任何想法如何取消设置异常处理程序?

function my_exception_handler($exception) {
    error_log("caught exception: " . $exception->getMessage() );
}

set_exception_handler("my_exception_handler");

// QUESTION: how does on unset it ?
//set_exception_handler(NULL);

try {
    throw new Exception('hello world');
    error_log("should not happen");
} catch(Exception $e) {
    error_log("should happen: " . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

实际产量:

抓住异常:你好世界

期望的输出:

应该发生:你好世界

php exception try-catch

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

如何获得应用程序的版本?

有没有办法获得Titanium应用程序的版本号?

例如,当安装在iOS设备上时,可能获得CFBundleVersion,并且当安装在Android上时,然后获取其版本号.


更新:我正在查看应用版本号的Titanium.Platform文档.应用程序版本号位于Titanium.App下.

这是我的代码,用于将我的应用程序的版本号发送到服务器,以便服务器可以提供不同的内容,具体取决于app-version-number.

function obtain_request_header() {
    var caps = Titanium.Platform.displayCaps;
    var s0 = 'appversion=' + Titanium.App.version;
    var s1 = 'osname=' + Titanium.Platform.osname + ',name=' + Titanium.Platform.name + ',version=' + Titanium.Platform.version + ',model=' + Titanium.Platform.model;
    var s2 = 'width=' + caps.platformWidth + ',height=' + caps.platformHeight + ',dpi=' + caps.dpi;
    return s0 + ',' + s1 + ',' + s2;
}
Run Code Online (Sandbox Code Playgroud)

titanium

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