感谢Stanford的CS193p课程(在iTunes U上)以及Big Nerd Ranch的iOS编程书,我学习了iOS编程.在这两个,他们建议使用dispatch_async()
,dispatch_get_main_queue()
等来处理线程和并发操作.但是,在WWDC 2012关于构建并发UI的会议上,发言人建议使用NSOperationQueue
.
dispatch_*()
和之间NSOperationQueue
有什么区别,有什么理由(技术,性能,风格或其他方面)我应该使用另一个吗?是否NSOperationQueue
只是一个Objective-C的包装器dispatch_async
,或者是有更多的什么原因呢?
我使用Vagrant快速启动测试环境,开发服务器等.我的很多Vagrant设置都使用配置脚本来根据需要自动下载和配置各种工具.然而,"招数"是命令行下载工具,如curl
和wget
使用来产生自己的进度条/状态显示(退格覆盖文本增加一个进度条等的当前行)在运行时都没有很好地渲染一个Vagrant配置脚本,导致大量垃圾如下所示导致合法输出快速滚动.
==> default: #
==> default: #########
############ 16.7%
############ 16.7%
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default: #
==> default:
==> default:
==> default:
############ 16.8%
Run Code Online (Sandbox Code Playgroud)
有没有办法"清理"任何一个curl
或wget
整洁的输出,而不是使用"当前行的退格重绘"技巧?我更喜欢,wget
但curl
如果有必要,可以转用.或者,是否有另一个下载工具,我可以使用更简单/更整洁的输出格式?(最好是在Ubuntu的存储库中有一个,因为这是我在大多数Vagrant设置中使用的发行版)
我目前的解决方案是完全禁用输出(使用wget
's --no-verbose
或curl
's -s …
我为我的播客写了一个应用程序,Otaku no Podcast.在应用程序的各个部分,我使用NSURLConnection
(获取RSS提要),UIWebView
(显示网站内容),AVPlayer
(从我们的CDN播放MP3音频文件),以及MPMoviePlayerViewController
(从我们的CDN播放视频文件).现在,由于所有这些都会产生某种类型的HTTP请求,我假设他们会使用标准的iPhone User-agent字符串来宣传自己.(如果我的假设不正确,请告诉我)这意味着,基于阅读我的日志文件,我无法通过普通的旧手机Safari告诉我哪些访问者,而不是使用我的应用程序.
有没有办法将用户代理更改为我自己的代理?我在SO上发现了这个问题,描述了如何使用这个问题,NSURL
但是我找不到任何关于我正在使用的上述类的信息.
我正在使用KVO来查看复选框,并根据复选框的状态启用或禁用详细信息输入区域.(即如果选中该复选框,则启用详细信息区域,否则不启用)类似于:
[self.detailInputArea bind:@"enabled" toObject:self withKeyPath:@"enabledCheckbox" options:nil];
Run Code Online (Sandbox Code Playgroud)
我的问题是,现在我想将其更改为设置detailInputArea
的hidden
属性,以显示/隐藏视图,具体取决于复选框的状态.问题是这需要逆逻辑.换句话说,设置enabled,
true表示视图已启用(可以接受输入),而false表示不能.但是,使用hidden,
true表示视图是隐藏的,否则为false.显然这不起作用,因为当选中复选框时,视图会隐藏自身(其enabled
属性为true).
有什么方法可以根据它正在观看的属性的反转来改变这种绑定行为,和/或是否有更好的方法来完成我在这里尝试做的事情?
我希望能够在点击按钮时从我的应用程序启动iTunes应用程序(请注意,我的意思是实际的音乐播放器,而不是iTunes Store或App Store).我希望它能直接进入正在播放的屏幕.有没有办法实现这个目标?
我刚刚将我的第一次更新上传到应用程序商店中的应用程序一段时间了.不幸的是,我不小心在那里留下了一些与调试相关的代码.有一个触发此代码的UI元素(按钮),因此应用程序审阅者(或最终用户)很可能会偶然发现它.
有没有办法取消我的应用程序上传,以便我可以重新上传它?或者是我唯一的办法,等到Apple拒绝(或接受,但这有点不太可能)我的应用程序,然后再试一次?
2013年8月7日编辑:Apple拥有一套优秀的WWDC视频,真正帮助我理解Objective-C中的各种日期和时间类,以及如何正确地执行时间计算/操作.
"解决共同日期和时间挑战"(高清视频,SD视频,幻灯片(PDF) )(WWDC 2013)
" 执行日历计算"(SD视频,幻灯片(PDF) )(WWDC 2011)
注意:链接需要免费的Apple Developer会员资格.
我正在为朋友的播客写一个应用程序.她播放她的节目现场每个星期天下午5点,我想编写一些代码在我的应用程序有选择地安排本地通知该时间,这样就可以提醒用户下一次现场演出是.我如何获得代表"下一个星期日太平洋时间下午5点"的NSDate对象.(显然,这必须转换为用户正在使用的任何时区)
我正在编写一个Cocoa应用程序,我希望用户能够使用占位符组合模板字符串.(例如,(艺术家)占位符将由当前在iTunes中播放的歌曲的艺术家填写等等.)我已经看过这样的应用程序,其中每个可能的占位符术语都显示在蓝色的"菱形"中, "并且用户可以将这些"锭剂"拖放到输入文本字段中以构造字符串,可选地输入他们自己的一些自定义文本(例如,用连字符分隔(艺术家)和(标题)"锭剂").
有谁知道在任何地方是否有任何示例代码可以帮助我实现这样的东西?
我正在谈论这样的事情:(这来自"Hazel"应用程序,在Hazel规则中,您可以根据您指定的模板模式重命名文件)