我正在开发一个MAC应用程序并包含tableView.想要将所选行的颜色更改为黄色.
我继承了一些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早期在同一范围内的含义?
我有一个故事板,我在其中创建了一个UINavigationController实例并将其自定义类设置为UIImagePickerController.
如果我设置imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera的prepareForSegue,一切工作正常.
如果我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) 我有使用核心数据绑定的窗口控制器和视图控制器,但我希望能够真正获得这些视图,真正取消分配.然后我想要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
只需单击整行即可扩展NSOutlineView行的最便捷方式是什么?(不是披露三角形)
这有一个单一的设置吗?或者一些神奇的模式设置改变了类似于源列表样式的行为?
我正在尝试从制表符分隔的文件中提取需要存储在变量中的数字。我正在使用正则表达式来解决这个问题,这要归功于我能够构建的一些在线研究。
该文件的组成如下:
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 ,但正如您所知,即使可以选择启用正则表达式的扩展版本,它也不喜欢向后查找和向前查找模式。我也尝试过awk和grep,但由于类似的原因失败了。
更进一步,我发现perl可能是正确的命令,但我无法使其正常工作。我正在尝试使用命令
perl -pe '/(?<=5\t).*?(?=\t)/' | INFO.out
Run Code Online (Sandbox Code Playgroud)
但我承认我的知识贫乏,我有点迷失。
下一步是从变量中读取正则表达式中的“5”,因此如果您已经知道可能出现的问题,请告诉我。
我有一些带有前导零的简单数据,并且我想插入一些其他值。像这样:
$ 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) objective-c ×4
macos ×3
perl ×3
cocoa ×2
core-data ×1
grep ×1
ios ×1
ios7 ×1
leading-zero ×1
nstableview ×1
octal ×1
photolibrary ×1
radix ×1
sed ×1
strict ×1