注意:这个问题似乎很相关,但事实并非如此:关联对象什么时候发布?
我正在为UIView实例添加第二个描述,如下所示:
- (void) setSecondDescription:(UIView*)view description2:(NSString*)description2 {
objc_setAssociatedObject (view,&key,description2,OBJC_ASSOCIATION_RETAIN);
}
- (NSString*) secondDescription:(UIView*)view {
return (id)objc_getAssociatedObject(view, &key);
}
Run Code Online (Sandbox Code Playgroud)
如果是UIViewdeallocs,相关描述2是否会被解除分配?有没有办法让这种情况自动发生?
不知道如果我读这个权利,但它似乎是脚手架不会做完全是个一个一对多的关系.例如,如果我messages用脚手架创建然后我想要comments那些messages(一个message- >多个comments),我必须经历并改变一切.举例来说,我已经在改变这个comment的new看法
<% form_for(@comment) do |f| %>
Run Code Online (Sandbox Code Playgroud)
对此
<% form_for([@message, @comment]) do |f| %>
Run Code Online (Sandbox Code Playgroud)
然后更改Action以设置@messagevar ...等等.
目前,Scaffold无法自动完成,对吧?
我正在考虑用旋钮,按钮和LED制作物理控制器(设备?).我想使用Java与它进行交互(响应旋钮,点亮LED等).我提到Java的原因有两方面:首先,我认识Java 1.其次,我编写了我需要在Java中与其交互的程序的其余部分(尽管有一些方法可以从另一种语言与Java程序对话).
我希望该设备通过USB连接并独立于(计算机)平台.
除了开始阅读Arduino网站之外,我对从哪里开始没有任何想法.这是我最好/唯一的选择吗?有没有更适合与Java通信的东西?
注意:我知道Arduino与Java有关(不确定是什么),但似乎代码必须写在C的子集中.
我将如何开始讨论这个话题?
1 - 请不要笑.
我正在国际化我的应用程序,并正在寻找如何处理复数形式的解决方案.我遇到了Mozilla的PluralForm项目,该项目基本上将复数问题抽象为国际化.以下是它的工作原理:
语言可以遵循许多"复数规则".每种语言都适用于众多复数规则中的一种,而且只有一种(Mozilla的文档有15种可能的复数规则).例如,在具有规则0的语言(例如中文)中,没有复数形式,因此只有一个所需的单词形式.在具有规则1(例如德语)的语言中,每个单词具有两个不同的复数形式.依此类推,取决于规则如何匹配.
当您编写国际化字符串时,您不仅要传递要国际化的字符串,还要传递要将名词复数化的数字:
print("You have " + num + " " + PluralForm.get(num, downloads) + ".");
在Objective-C中,人们可以做到这一点:
NSString *str = [NSString stringWithFormat:NSLocalizedStringFromTable(@"%d Items"), myNumber];
当然,上面的Objective-C示例并没有解决复数形式的问题.
当PluralForm.get函数接收调用时,根据当前使用的语言,它应用复数形式,并从字符串文件中提取适当的国际化字符串,具体取决于它应遵循的特定子规则.
PluralForm的优势很明显(至少对我而言).它从编码器中抽象出实际的语言规则,因此不需要在必须处理复数形式的所有位置复制它们.
我想使用像编写iPhone应用程序时那样的系统.是否有可用的项目或代码将Mozilla的PluralForm移植到objective-c?
现在我已升级到Lion和Xcode 4.3.x,调试器正在进入ARC的东西.所以我看到一个充满了屏幕
libobjc.A.dylib`objc_retainAutoreleasedReturnValue:
0x1de7fe0: pushl %ebp
Run Code Online (Sandbox Code Playgroud)
和pushl和movl和subl等可惜我不能symbolicate这些,我也不关心调试苹果的东西.有没有办法让调试器只关注我实际拥有的代码?
我正在使用LLDB,但GDB也是如此.
编辑:这也发生在AppCode上,它说了些什么(但我不知道是什么).
有没有办法做这种事情?
static const CGSize maxPageSize = CGSizeMake(460, 651);
Run Code Online (Sandbox Code Playgroud)
这是非法的,因为"Initializer元素不是编译时常量".
当然,我可以使用单独的花车,但我想知道是否有办法做到这一点.
我一直在使用MySql查询浏览器和[意见]它必须是我见过的最糟糕的用户界面.永远.[/意见]但它是免费的,所以很棒,我喜欢它.
任何人都可以为MySql DB管理员推荐任何更好的免费工具吗?我想让它在我的本地机器上运行而不是在浏览器中运行,如果可能的话......
编辑:我在Windows上,但如果某些东西适用于OSX,Windows和Linux,那就太棒了......
编辑:我在测试后根据自己的偏好选择了最佳答案.Navicat(PC,Mac,Linux)是最好的,HeidiSQL也很棒(也许更完整,但UI有点笨拙),其余的相对烦人(再次,我需要在UI中)...这个是相当主观的,但我认为,如果你尝试他们都像我一样,你会与我的前两个选择同意.
编辑:在实际尝试它们之后,HeidiSQL是最好的.再次,这是我的意见......
我想使用正则表达式获取文件名,所以我一直在尝试简单的事情
([^\.]*)
Run Code Online (Sandbox Code Playgroud)
这当然只有在文件名有一个扩展名时才有效.但如果是adfadsfads.blah.txt我想要的话adfadsfads.blah.我怎么能用正则表达式做到这一点?
关于David的问题,'为什么你会使用正则表达式',答案是'为了好玩'.事实上,我使用的代码很简单
length_of_ext = File.extname(filename).length
filename = filename[0,(filename.length-length_of_ext)]
Run Code Online (Sandbox Code Playgroud)
但我喜欢尽可能地学习正则表达式,因为它总是出现在极客鸡尾酒派对上.
我是NSOpenPanel从用户的机器中选择文件或文件夹.但是当用户单击"打开"时,光标位于文本字段中显示的路径的开头.这是一个问题,因为在您右键单击文本字段和箭头之前,您将看不到列出整个路径.例如,如果路径是:
/Users/jeremysmith/code/testfolder/testfolder2
Run Code Online (Sandbox Code Playgroud)
它可能只显示:
/Users/jeremysmith/code/
Run Code Online (Sandbox Code Playgroud)
由于光标位于开头,文本字段的宽度仅为"代码".