小编ste*_*iva的帖子

NSTableview更改高亮颜色

我正在开发一个MAC应用程序并包含tableView.想要将所选行的颜色更改为黄色.

macos cocoa objective-c nstableview

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

支架代码部分在使用严格/不严格?

我继承了一些perl代码,当然不使用strict或warnings,并且我继续使用未初始化的变量等.

我想将我正在修改的代码部分括起来:

use warnings;
use strict;

... my code changes and additions ...

no strict;
no warnings;
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但是当我说这些是导入当前"块范围"的编译器指令时,我遇到了破解perldoc使用意味着什么问题.这是否意味着任何范围都可以与一个use strict未配对no strict?是否no strict在全局范围的尾部基本上取消了use strict早期在同一范围内的含义?

perl strict

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

故事板中的UIImagePickerController:UIImagePickerControllerSourceTypePhotoLibrary显示黑屏

我有一个故事板,我在其中创建了一个UINavigationController实例并将其自定义类设置为UIImagePickerController.

如果我设置imagePicker.sourceType = UIImagePickerControllerSourceTypeCameraprepareForSegue,一切工作正常.

如果我imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary进入prepareForSegue,我会得到一个大多数黑色屏幕,顶部有一个空的灰色条,我无法解雇:

[截图的未来位置 - 我无法发布图片]

我可以通过不使用故事板来解决这个问题.我的问题 - 这可以与故事板一起工作吗?如果没有,为什么不呢?为什么它只适用于呈现相机?

编辑:一位同事评论说这可能是ios7的一个新问题

如果segue由故事板触发,则下面的代码不起作用

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSAssert([segue.destinationViewController isKindOfClass:[UIImagePickerController class]], @"Destination VC should be UIImagePickerController");

    UIImagePickerController *imagePicker = (UIImagePickerController*) segue.destinationViewController;

    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.allowsEditing = YES;
    imagePicker.delegate = self;

}
Run Code Online (Sandbox Code Playgroud)

objective-c photolibrary uiimagepickercontroller ios ios7

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

我应该在windowController的dealloc中取消绑定cocoa绑定吗?

我有使用核心数据绑定的窗口控制器和视图控制器,但我希望能够真正获得这些视图,真正取消分配.然后我想要resetmanagedObjectContext,并且在那时放弃了尽可能多的内存.

我发现我需要unbind在Nib中绑定的东西,或者MOC保留Nib对象.

问题是这个EXEC_BAD_ACCESS跟踪:

在此输入图像描述

如果我没有取消绑定所有绑定,即使是在Interface Builder reset上创建的那些绑定,也会导致EXEC_BAD_ACCESS,因为绑定试图通过应该消失的数组控制器反映视图中MOC的变化,但不是"T.

所以我在窗口控制器的dealloc中做了这个:

- (void) dealloc 
{
    NSLog(@"Wincon dealloc");
    @autoreleasepool {
        // Remove subview to ensure subview dealloc
        [_viewController.view removeFromSuperviewWithoutNeedingDisplay];

        // Tear down bindings to ensure MOC can reset
        for (NSObject<NSKeyValueBindingCreation>* object in
             @[_watcherAC, _watchersTimesTreeController, _watcherTableView, _itemsOutlineView])
        {
            for (NSString* binding in [object exposedBindings])
                [object unbind:binding];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以这种方式触发:

- (void) switchToBackgroundMode
{
    NSLog(@"SwitchToBackgroundMode");

    // Hide the menu and dock icon
    [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];

    // Force every view to deallocate before …
Run Code Online (Sandbox Code Playgroud)

macos core-data objective-c cocoa-bindings automatic-ref-counting

5
推荐指数
0
解决办法
975
查看次数

单击行中的任意位置展开NSOutlineView项

只需单击整行即可扩展NSOutlineView行的最便捷方式是什么?(不是披露三角形)

这有一个单一的设置吗?或者一些神奇的模式设置改变了类似于源列表样式的行为?

macos cocoa objective-c nsoutlineview

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

如何使正则表达式与 perl 命令一起使用并从文件中提取数字?

我正在尝试从制表符分隔的文件中提取需要存储在变量中的数字。我正在使用正则表达式来解决这个问题,这要归功于我能够构建的一些在线研究。

该文件的组成如下:

0   0   2500    5000
1   5000    7500    10000
2   10000   12500   15000
3   15000   17500   20000
4   20000   22500   25000
5   25000   27500   30000
Run Code Online (Sandbox Code Playgroud)

我需要在给定第一列的数字的情况下提取第二列中的数字。我在线编写并测试了正则表达式:

(?<=5\t).*?(?=\t)
Run Code Online (Sandbox Code Playgroud)

我需要第六行的25000。

我开始使用sed-E ,但正如您所知,即使可以选择启用正则表达式的扩展版本,它也不喜欢向后查找和向前查找模式。我也尝试过awkgrep,但由于类似的原因失败了。

更进一步,我发现perl可能是正确的命令,但我无法使其正常工作。我正在尝试使用命令

perl -pe '/(?<=5\t).*?(?=\t)/' | INFO.out
Run Code Online (Sandbox Code Playgroud)

但我承认我的知识贫乏,我有点迷失。

下一步是从变量中读取正则表达式中的“5”,因此如果您已经知道可能出现的问题,请告诉我。

perl grep sed

2
推荐指数
1
解决办法
206
查看次数

确保以零开头的字符串进行十进制解释的最佳方法?

我有一些带有前导零的简单数据,并且我想插入一些其他值。像这样:

$ printf "C011=4\nC015=8\n" | perl -ne '/C(\d\d\d)=(.*)/; $l{$1}=$2 }{ $l{13}=($l{15}-$l{11})/2+$l{11}; printf "C%03d=%f\n",$_,$l{$_} for keys %l;'

C011=4.000000
C013=0.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

好的。Perl的不匹配11,以011

在上面的简单情况下,您可能会想,嘿,不管怎样,让我们​​使用哈希键中的前导零进行算术运算:

$ printf "C011=4\nC015=8\n" | perl -ne '/C(\d\d\d)=(.*)/; $l{$1}=$2 }{ $l{013}=($l{015}-$l{011})/2+$l{011}; printf "C%03d=%f\n",$_,$l{$_} for keys %l;'

C011=4.000000
C011=0.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

在这里,我显然将字符串011(printf变为11)和八进制数字013(其printf变为11)作为关键字。并且011and 015值的查找仍然失败。

在perl中,有哪些选择可以避免将前导零(而不是9)解释为八进制的数字的行为?我希望哈希键具有其适当的十进制值。

我有一个解决方法。我只想看看它是否是最简洁的解决方案。像全局不这样做的东西,我从不使用八进制。

预期产量:

C011=4.000000
C013=6.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

perl octal radix leading-zero

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