我正在寻找一种以编程方式(即不通过UI)从我的iOS应用程序访问用户iTunes音乐库的方法.
(是的,我知道Apple不鼓励使用其他iPod接口应用程序.这不是问题:)
我想做的是:
- 收集歌曲名称列表.
- 让我的应用程序制作一个字谜.
- 让用户猜出原始歌曲名称.
- 如果他们猜对了,我会播放这首歌的片段.
(这不是我真正的应用程序,但它包含了我需要的所有部分.)我要问的部分是:如何获取歌曲名称列表,并给出歌曲名称,如何让媒体播放它?
我认为AVAssetReader会让我播放一首歌,一旦我有它的名字,所以我可以自己查看(虽然在那里指点奖励积分!) - 所以底线问题是:如何从iOS用户的iTunes资料库中获取歌曲名称列表?
[编辑]嗯.也许这个问题应该标题为"CocoaTouch中调用的默认用户输入对话框视图是什么?" 我意识到我可以创建一个完全符合我想要的视图,并将其包装在视图控制器和presentModalView中 - 但我有点希望有一个标准的,普通的用户输入"对话框"视图 - 与Cocoa-touch."输入您的姓名","输入要搜索的文字"等,都是非常常见的事情!
无论如何......这是我最初提出的问题:
这段代码:
UIAlertView* find = [[UIAlertView alloc] init];
[find setDelegate:self];
[find setTitle:@"Find"];
[find addButtonWithTitle:@"Cancel"];
[find addButtonWithTitle:@"Find & Bring"];
[find addButtonWithTitle:@"Find & Go"];
[find addButtonWithTitle:@"Go To Next"];
[find addSubview:_findText];
CGRect frm = find.frame;
int height = frm.size.height + _findText.frame.size.height + 100; // note how even 100 has no effect.
[find setFrame:CGRectMake(frm.origin.x, frm.origin.y, frm.size.width, height)];
[find setNeedsLayout];
[find show];
[find release];
Run Code Online (Sandbox Code Playgroud)
生成此警报视图:
查找提醒http://www.publicplayground.com/IMGs/Misc/FindAlert.png
(我从emi1Faber的这个问题的代码开始,它的工作方式与广告一样;但是,正如我在评论中所述,取消按钮覆盖了文本字段.)
如何重新调整所有内容以使文本字段正确匹配?[findAlert setNeedsLayout]似乎没有做任何事情,即使在我[findAlert setFrame:tallerFrame]之后.提示?
谢谢!
(是的,我理解dylib的重点是动态加载,但我正在尝试创建一个自包含的包.)
我有一个可执行文件,我从命令行构建 - 在OS-X/Lion上,如果重要的话.我将可执行文件发送给了朋友,但他无法运行它,因为他没有安装库.他宁愿不安装库,所以现在我正在尝试创建一个包含原始可执行文件和所有必需库的包.
我习惯于在XCode(IDE)中工作,并且不熟悉make和命令行构建工具及其选项.(我根据网上的非常好的指示构建了这个工具.)因此,明确的指示会很有帮助.
谢谢!
在OSX中(我在10.7.x,Lion上),您可以从大多数应用程序中获取一些文本并将其拖到桌面上以获取"snippet.textClipping"文件.这个文件不仅仅是原始文本 - 文本被隐藏起来,某处(在资源中?)我曾尝试过使用DeRez,但无法将其弯曲到我的意愿.我正在寻找的是能够获得人们可能认为的输出的能力
cat mysnippet.textClipping
注意:这些剪辑是在较旧版本的OSX下完成的.也许是豹子.可能年纪大了,已经有一段时间了.:)
谢谢!
PS我有一个包含1600多个文件夹的文件夹,这就是我要编写脚本的原因,而不仅仅是手动将它们复制/粘贴到文本文件中.
PPS是的,如果我只选择-all然后拖动到一个打开的空文本文档中,它会按照您的预期进行操作.但是我仍然希望通过脚本来完成它,所以我可以先将剪辑的名称和每个剪辑的名称放在前面,等等.
我已经阅读了文档(几个不同版本!)但我无法理解我的头脑multiple-value-bind.
这就是我(我想)知道的:
这肯定是文档读取的方式,它适合我正在阅读的代码,但不是非常紧随其后.当我尝试multiple-value-bind从头开始创建一个语句作为测试时,我遇到了麻烦.我最终得到这样的结果:
? (mulitple-value-bind (x y z) (values 11 22 33) (+ x y z)) ;; EDIT: contains typo
> Error: Unbound variable: Y
> While executing: CCL::CHEAP-EVAL-IN-ENVIRONMENT, in process Listener(7).
> Type cmd-/ to continue, cmd-. to abort, cmd-\ for a list of available restarts.
> If continued: Retry getting the value of Y.
> Type :? for other options.
1 >
Run Code Online (Sandbox Code Playgroud)
(我有点希望输出符合66.)(如果重要的话,我正在使用Clozure-CL,尽管我不认为它应该.)
另外,我正在查看一些示例代码(试图理解Project Euler Problem 24),其内容如下: …
在Ruby中,我有:
require 'uri'
foo = "et tu, brutus?"
bar = URI.encode(foo) # => "et%20tu,%20brutus?"
Run Code Online (Sandbox Code Playgroud)
我试图让bar等于"et%20tu,%20brutus%3f"("?"替换为"%3F")当我尝试添加此内容时:
bar["?"] = "%3f"
Run Code Online (Sandbox Code Playgroud)
"?" 匹配一切,我明白了
=> "%3f"
Run Code Online (Sandbox Code Playgroud)
我试过了
bar["\?"]
bar['?']
bar["/[?]"]
bar["/[\?]"]
Run Code Online (Sandbox Code Playgroud)
还有一些其他的东西,都没有用.
提示?
谢谢!
在GAE中,我有一个充满"一次性"的桌子 - 像"最后使用的序列号"之类的东西,并没有真正属于其他表格.它是一个带字符串值对的简单String键.
我有一些代码来获取一个命名整数并递增它,如下所示:
@PersistenceCapable(detachable="true")
public class OneOff
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String dataKey;
@Persistent
private String value;
public OneOff(String kk, String vv)
{
this.dataKey = kk;
this.value = vv;
}
public static OneOff persistOneOff(String kk, String vv)
{
OneOff oneoff= new OneOff(kk, vv);
PersistenceManager pm = PMF.get().getPersistenceManager();
try
{
pm.makePersistent(oneoff);
}
finally
{
pm.close();
}
return oneoff;
}
// snip...
@SuppressWarnings("unchecked")
synchronized
public static int getIntValueForKeyAndIncrement(String kk, int deFltValue)
{
int result = …Run Code Online (Sandbox Code Playgroud) 在我的Google AppEngine(GAE)服务器上,我想做这样的事情:
if (thisIsTheDefaultServer)
{
// behave normally
}
else
{
// Accept special test-commands, give extra output, etc.
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让服务器代码确定它是否是当前的默认版本?
谢谢!
我是一个完整的Lisp n00b,所以请保持温柔.
我无法理解CL关于[un-]声明的自由变量的想法.我认为:
(defun test ()
(setq foo 17)
)
Run Code Online (Sandbox Code Playgroud)
将定义一个声明变量foo并将其设置为17的函数.但是,我得到了
;Compiler warnings :
; In TEST: Undeclared free variable FOO
Run Code Online (Sandbox Code Playgroud)
我的实际案例有点大; 我的代码(代码段)看起来像这样:
(defun p8 ()
;;; [some other stuff, snip]
(loop for x from 0 to (- (length str) str-len) do
(setq last (+ x str-len)) ; get the last char of substring
(setq subs (subseq str x last)) ; get the substring
(setq prod (prod-string subs)) ; get the product of that substring
(if (> prod max) ; …Run Code Online (Sandbox Code Playgroud) 我在Common-Lisp中没有得到第一个/最后一个.是的,我知道它是如何工作的,但是我不知道为什么它会这样运作.
基本上,为了获得列表中的第一项,我可以使用(first mylist).但是,如果我想要最后一项,(last mylist)不要给我那个; 相反,它给了我一个包含我列表中最后一项的列表!
(我正在使用Clozure-CL,它有一些其他奇怪的东西对我来说似乎是错误但是,因为我是一个Lisp-n00b,我试图不为旧的"解释器坏了!"技巧:))
所以,例如:
? (setq x '((1 2) (a b)))
=> ((1 2) (A B))
? (first x)
=> (1 2) ; as expected
? (last x)
=> ((A B)) ; why a list with my answer in it?!
? (first (last x))
=> '(A B) ; This is the answer I'd expect from plain-old (last x)
Run Code Online (Sandbox Code Playgroud)
有人能帮助我理解为什么最后这样做吗?我错误地使用这些物品了吗?是否first真的是奇数球?
谢谢!
common-lisp ×3
lisp ×2
macos ×2
bash ×1
build ×1
cocoa-touch ×1
concurrency ×1
dylib ×1
ios ×1
itunes ×1
locking ×1
ruby ×1
string ×1
substitution ×1
uri ×1