小编cbo*_*wns的帖子

zsh:启动命令时使用当前时间更新提示

我有一个zsh提示我更喜欢:它评估当前时间precmd并显示在提示的右侧:

[Floatie:~] ^_^ 
cbowns%                      [9:28:31 on 2012-10-29]
Run Code Online (Sandbox Code Playgroud)

然而,这不是正是我想要的:你可以看到下面,这个时候实际上是将以往的命令退出,而不是命令开始的时间的时间:

[Floatie:~] ^_^ 
cbowns% date                           [9:28:26 on 2012-10-29]
Mon Oct 29 09:28:31 PDT 2012
[Floatie:~] ^_^ 
cbowns% date                           [9:28:31 on 2012-10-29]
Mon Oct 29 09:28:37 PDT 2012
[Floatie:~] ^_^ 
cbowns%                                [9:28:37 on 2012-10-29]
Run Code Online (Sandbox Code Playgroud)

在shell启动新命令之前是否有一个挂钩zsh来运行命令,以便我可以更新提示时间戳呢?(我在zsh提示符中看到了持续更新的时钟?但是我不需要它不断更新,只是在我按下回车时更新.)

(^_^它基于前一个命令的返回代码.;_;当存在非零退出状态时,它显示为红色.)

zsh prompt zsh-zle

33
推荐指数
6
解决办法
9548
查看次数

如何在Perl脚本中运行Perl脚本?

我有一个需要执行另一个Perl脚本的Perl脚本.第二个脚本可以直接在命令行上执行,但我需要在第一个程序中执行它.我需要传递一些参数,这些参数通常在它独立运行时传递(第一个脚本定期运行,并在一组系统条件下执行第二个脚本).

Google的初步搜索建议使用反引号或system()调用.有没有其他方法来运行它?(我猜是的,因为它是我们正在讨论的Perl:P)如果我需要从被调用的程序中捕获输出,那么首选哪种方法(如果可能的话,将输出管道输出到stdout,就像第二次一样程序被直接调用)?

(编辑:哦,现在 SO提出了一些相关问题.这个问题很接近,但与我提出的问题并不完全相同.第二个程序可能需要一个小时或更长时间才能运行(大量I/O),所以我不确定一次性调用是否适合这种情况.)

perl ipc

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

是否可以使用完成块推送View Controller?

UINavigationController的文档不包含pushViewControllercompletion:参数的方法.

uiviewcontroller uinavigationcontroller pushviewcontroller ios

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

一些应用如何在他们的应用程序中以编程方式打开设置应用

我知道有很多问题:"如何以编程方式打开设置应用程序?" 答案是"大不了".我知道Apple不支持在iOS 5.0之后从任何其他应用程序打开设置.

但是有一些像MapMyFitness这样的应用程序可以打开设置,它们可以在App Store中获得并且已经Apple批准.如果蓝牙已关闭,MapMyFitness将打开蓝牙设置.我在iOS 6和iOS 5.1中检查过这个.

我想知道这些应用程序如何能够合法地打开"设置"并绕过Apple安全性,因为根据我的信息,没有合法的方法可以做到这一点?

iphone objective-c ios ios5.1 ios6

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

MVVM并推送ViewController:在哪里初始化下一个ViewController和ViewModel,并推送新视图?

我正在考虑一个非常简单的ViewModel和ViewController的结构,用于测试应用程序.我有类似的东西:

FirstViewController.m:

- (IBAction)launchButtonSelected:(id)sender
{
    [self.viewModel launchActionSelected];
}
Run Code Online (Sandbox Code Playgroud)

FirstViewModel.m:

- (void)launchActionSelected
{
    // [todo] - Figure this out.
}
Run Code Online (Sandbox Code Playgroud)

当在launchButton中选中时FirstViewController,我想制作并呈现一个SecondViewController.

我的问题:

  1. 我应该在哪里创建SecondViewControllerViewModel 有一个可靠的经验法则吗?
  2. 谁应该初始化SecondViewController
  3. 我应该在哪里推进SecondViewController视图层次结构?(即导航推送或模态演示).

我个人在想:

  1. ViewModel for SecondViewController可能会在其初始化程序中创建.这总是让我走上一条令人困惑的道路:如果我想将信息传递FirstViewModel给我SecondViewModel怎么办?我应该公开SecondViewModel作为公共财产,SecondViewController以便我可以获得/设定价值吗?
  2. FirstViewController应该创造SecondViewController,和
  3. FirstViewController应该推SecondViewController到屏幕上.

我的直觉认为这是次要的:我想更多地隔离ViewControllers的呈现,让应用程序更专注于ViewModel,但这似乎很难做到.(即"推"ViewModels,而非ViewControllers ......但"推"与应用程序的视觉呈现本质上相关,所以也许这是错误的思考方式.)

mvvm ios reactive-cocoa

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

为什么AudioServicesCreateSystemSoundID在内部抛出异常但返回0作为错误代码?

我在4.3.2,5.0和5.1模拟器中运行iOS程序,我在AudioToolbox中遇到了一个奇怪的内部异常.我在Xcode中设置了一个断点(Xcode 4.3.1,在10.7.3上运行),用于所有异常,调试器在调用期间断开AudioServicesCreateSystemSoundID():

SystemSoundID soundID;
OSStatus errorCode = AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
                  // ^ boom. ^
Run Code Online (Sandbox Code Playgroud)

回溯:

(lldb) bt
* thread #1: tid = 0x1f03, 0x9000e230 libc++abi.dylib`__cxa_throw, stop reason = breakpoint 1.2
frame #0: 0x9000e230 libc++abi.dylib`__cxa_throw
frame #1: 0x00144193 AudioToolbox`ID3ParserHandle::ID3ParserHandle(void*, long (*)(void*, unsigned long, unsigned long, unsigned long, void**, unsigned long*)) + 259
frame #2: 0x001442de AudioToolbox`ID3ParserOpen + 62
frame #3: 0x0006c0e7 AudioToolbox`MPEGAudioFile::ParseID3Tags() + 87
frame #4: 0x0006c2ba AudioToolbox`MPEGAudioFile::ParseAudioFile() + 26
frame #5: 0x00015153 AudioToolbox`AudioFileOpenWithCallbacks + 371
frame #6: 0x00027020 AudioToolbox`_ZL15VerifyAndMapURLPK7__CFURLRx …
Run Code Online (Sandbox Code Playgroud)

exception objective-c audiotoolbox ios

12
推荐指数
2
解决办法
2605
查看次数

调试CoreGraphics/MapKit中的崩溃

当我的应用程序在iPhone上运行时,我发生间歇性崩溃.所有崩溃都是相同的,并以某种方式涉及MKMapView Overlays(MKCircleViews).

从典型的iPhone 4s崩溃报告:

报告标题:

Hardware Model:      iPhone4,1
Process:         EL-GPS-01 [1021]
Path: /var/mobile/Applications/61288E15-74B5-45B9-99A9-E0B58C767816/EL-GPS-01.app/EL-GPS-01
Identifier:      EL-GPS-01
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2011-11-22 15:59:41.065 +0000
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000
Crashed Thread:  6
Run Code Online (Sandbox Code Playgroud)

崩溃的线程:

Thread 6 name: Dispatch queue: com.apple.root.default-priority
Thread 6 Crashed:
0 ??? 0000000000 0 + 0
1 CoreGraphics 0x319a87c2 0x31967000 + 268226
2 CoreGraphics 0x3199a9e6 0x31967000 + 211430
3 …
Run Code Online (Sandbox Code Playgroud)

iphone core-graphics objective-c mapkit ios

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

RACChannel:没有看到我预期的双向绑定

(也可以在GitHub上公开评论来自ReactiveCocoa的人.)

我在一个非常简单的尝试ReactiveCocoa RACTest(源是在GitHub上)应用程序试图通过实际使用它坚定了我的理论认识.

,我有一个RACChannel,它提供了一个ed l值和我指定的任何参数之间的双向绑定.RAC()RACChannel

我的用法如下:

// Map the ticker's accumulationEnabled property to self.paused.
RAC(self, paused) = [RACChannelTo(_ticker, accumulateEnabled) deliverOn:[RACScheduler mainThreadScheduler]];
Run Code Online (Sandbox Code Playgroud)

我看到流动的变化的一个方向,从_ticker.accumulateEnabledself.paused,但变化self.paused不会流回_ticker.

我误解了RACChannel吗?它有什么用,这怎么不是预期的用途?

reactive-cocoa

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

了解ReactiveCocoa测试项目中的ReactiveCocoa和MVVM

我写了一个非常简单的ReactiveCocoa测试应用程序,试着在RAC中编写代码(而不是只是无休止地阅读它).这是在Github上,我想得到一些关于它的具体问题.我将继续链接到代码组件.

首先,简要说明应用程序:它是一个计时器驱动的迭代计数器,可以由用户暂停.(其目的是计算已经过了多少秒,忽略了用户暂停它的那些秒.)每秒一次,如果用户没有暂停递增行为,则计时器会递增变量.

我关注的三个课程是听取反馈意见:

  • MPSTicker(.m),执行"从初始化开始累积,除非暂停"并在信号上提供该结果.它有一个公共BOOL属性来控制累积是否正在运行.
  • MPSViewModel(.m),它提供ViewModel包装MPSTicker到视图控制器.它提供只读字符串,显示刻度数并显示操作的文本,如果采用,则"暂停"或"恢复"刻度.它还具有BOOL暂停/取消暂停刻度的读写.
  • MPSViewController(.m),它MPSViewModel通过将标签绑定到ViewModel的tick字符串来消耗字符串,将按钮的文本绑定到"tick action"字符串,并将按钮的按下映射到ViewModel的暂停属性.

我的问题:

  1. 我不喜欢启用/禁用其累积的BOOL属性MPSTicker,但我不知道怎么做更多Reactive-ly.(这也在ViewModel和ViewController的下游运行:如何通过所有这三个字符串运行一个字符串来控制自动收报机是否正在运行?)
  2. 该视图模型公开tickStringtickStateString非常传统的性质,但它消耗的这些马上的ViewController映射它们放回文本上的标签按钮文本RACObserve.这感觉不对,但我不知道如何从ViewModel公开一个信号,ViewController很容易为这两个属性使用.
  3. 翻转ViewModel 时,ViewController会受到侮辱paused BOOL.我认为这是#1的另一个下游效应,"这不应该是一个BOOL属性",但我不确定

(注:我觉得我退避三舍从信号对BOOLpausedMPSTicker,因为我不知道如何使用它在视图模型推导出两个字符串(一个用于当前的时间计数,和一个用于操作文本),也不怎么当用户按下"暂停"或"恢复"按钮时,推动UI驱动的值更改.这是我在问题1和3中的核心问题.)

一些截图可以帮助您想象这个华丽的设计:

滴答:

滴答

已暂停:

已暂停

mvvm ios reactive-cocoa

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

如何阅读我的应用程序的CFNetwork级用户代理?

我想以编程方式检索我的应用程序的User-Agent字符串.(注意:不是我的应用程序中的UIWebView的UA; NSURLConnection基于UA 的HTTP请求.)

有很多关于如何阅读应用程序的指南UIWebView User-Agent,但没有关于如何获取其HTTP请求中的<appname>/1.0 CFNetwork/456.23字符串的指南CFNetwork.有用于CFHTTPMessage复制所有标题字段的API ,但我只有一个NSURLRequest和一个NSURLResponse,这些是非桥接的不透明类型.救命!

(一些好的背景阅读:改变NSURLConnection的的userAgent提到,我想在格式.什么HTTP用户代理程序的iOS我做广告节目本身?确实也是如此.)

user-agent cfnetwork ios

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