小编Jak*_*org的帖子

获取某个UITableViewCell的屏幕坐标?

所以,我有这个UITableView.它在iPad应用程序中.有些单元格右侧有一个附件按钮(小圆形箭头).按下该按钮后,我会显示一个弹出视图,用户可以在其中选择与他们触摸的表格单元格相关的操作.到目前为止,这一切都不是困难或特殊的.

但是popover视图想要知道它的起源,以便它可以绘制指向那里的小箭头.我自然会喜欢箭头指向popover所关联的表格单元格.

鉴于我知道它是indexPath,我怎样才能找到表中某个单元格的当前屏幕坐标?

iphone cocoa-touch uitableview ipad uipopovercontroller

8
推荐指数
1
解决办法
6851
查看次数

Bluecloth v2.0.10与Windows 7无法正常工作

在Ruby 187中,我从http://rubyinstaller.org/downloads下载了devkit, 并按照https://github.com/oneclick/rubyinstaller/wiki/Development-Kit的说明进行操作.我还通过跟踪冒烟测试确保了devkit的正确安装.

然后我尝试安装蓝布(v2.0.10).它失败了以下错误:

C:\test\typo>gem install bluecloth --platform=ruby

Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing bluecloth:
       ERROR: Failed to build gem native extension.

c:/Ruby187/bin/ruby.exe extconf.rb
checking for srand()... yes
checking for random()... no
checking for rand()... yes
checking for bzero() in string.h,strings.h... no
checking for strcasecmp()... yes
checking for strncasecmp()... yes
checking for mkdio.h... yes
checking for ruby/encoding.h... no
creating extconf.h
creating Makefile

make
gcc -I. …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails windows-7 bluecloth devkit

7
推荐指数
2
解决办法
2686
查看次数

单元/集成测试Asterisk配置

当然,单元和集成测试通常作为开发过程的一部分执行.我正在寻找在现有系统的配置中使用这种方法的方法,在这种情况下是Asterisk软PBX.

在Asterisk的情况下,配置文件与其他任何编程语言一样多,包括循环,跳转,条件等,并且可能变得非常复杂.对配置的更改通常会遇到与复杂软件产品更改相同的问题 - 如果没有测试,很难预见所有效果.由于系统的性质是与外部实体通信,即拨打电话,这一点变得更糟.

我有一些关于使用调用文件测试系统的想法(在扩展之间创建特定调用),同时观察生成事件的管理器界面.然后,测试可以观察预期结果,即拨打*99#应该导致语音邮件应用程序被调用.

缺陷是显而易见的 - 它不测试实际结果,只测试系统认为的结果,并且可能需要对被测系统进行一些修改.要足够强大地编写这些测试以仅触发预期输出也是非常困难的,特别是如果系统正在使用中(即正在进行其他调用).

我想要的是Asterisk的测试系统,不可能吗?如果没有,您是否有任何关于如何以合理的方式解决这个问题的想法?我愿意花费相当多的开发时间并在友好许可下发布结果,但我不确定最好的方法.

configuration integration-testing unit-testing asterisk

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

如何在Rails/Ruby中处理琐碎的"重复代码"气味

因此,我们都努力减少重复(DRY)和其他气味,并尽可能保持我们的代码良好和干净.对于Ruby代码,有很多仪器可以检测气味,例如相当不错的Calibre服务.

但是,似乎我对代码重复的定义与工具不同.我认为这可能与Ruby的做事方式有关,你几乎从不直接访问变量,而是通过方法调用.考虑一下Rails控制器的这个片段:

def update_site_settings
  SiteSettings.site_name = params[:site_name]
  SiteSettings.site_theme = params[:site_theme]
  expire_fragment('layout_header')
  flash[:notice] = t(:Site_settings_updated)
  redirect_to :controller => 'application', :action => 'edit_site_settings'
end
Run Code Online (Sandbox Code Playgroud)

由于对"params"方法的两次调用,因此标记了代码重复警告.所以我的问题是,分配params到局部变量真的会有所改进吗?我认为编写它的方式是最清晰简洁的方法,事实上,params方法而不是变量是Ruby中"做生意的成本".

我看错了吗?

编辑:在这种情况下,更漂亮的方式可能是进行SiteSettings.update_attributes(params)样式更新.如果您愿意,请考虑另一个代码段中的相同问题:

def update
  @mailing_list = MailingList.find(params[:id])

  if @mailing_list.update_attributes(params[:mailing_list])
    flash[:notice] = t:Mailing_list_updated
    redirect_to(mailing_lists_path)
    ...
Run Code Online (Sandbox Code Playgroud)

ruby design-patterns ruby-on-rails

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

属性(保留)对象被释放而没有被标记为发布

我的智慧结束了.我正在尝试调试崩溃,最后我设法跟踪它.我的'minutesLeft'变量以某种方式被释放.

问题是,我从未将其设置为释放,并且属性设置为保留.我无法弄清楚发生了什么!

使用zombie变量,我得到以下消息:*** - [CFNumber intValue]:发送到解除分配的实例0x728fdd0的消息

并将其跟踪到以下代码行:

NSLog(@"MeterViewController minutesLeft %i", [minutesLeft intValue]);
Run Code Online (Sandbox Code Playgroud)

问题是当我声明属性... @property(nonatomic,retain)NSNumber*minutesLeft; 所以该物业应该为我处理保留!

使用...设置该值

minutesLeft=[NSNumber numberWithInt:row];
Run Code Online (Sandbox Code Playgroud)

和...

minutesLeft=[NSNumber numberWithInt:(((timeLeft)/60)%60)];
Run Code Online (Sandbox Code Playgroud)

对于dealloc和viewDidUnload,我有

self.minutesLeft=nil;
Run Code Online (Sandbox Code Playgroud)

但既然我不离开这个观点,那些不应该影响任何东西.

有人有主意吗?

iphone objective-c

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