小编Mel*_*emi的帖子

你如何在Cocoa/Obj-C中为KVC包装一个BOOL?

我正在使用KVC来迭代几个视图.设置BOOL属性时遇到问题:

[self setValue:YES forKeyPath:[NSString stringWithFormat:@"myView%d.userInteractionEnabled", n]];
Run Code Online (Sandbox Code Playgroud)

我得到:警告:传递'setValue:forKeyPath:'的参数1使得整数指针没有强制转换.

我找不到[NSValue valueWithBool:YES]或类似的东西.

该怎么办?

cocoa cocoa-touch objective-c key-value-coding

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

为什么这个过度释放?UINavigationController/UITableview

我正在从我的TableViewController的didSelectRowAtIndexPath方法中将视图控制器推送到导航控制器的堆栈中,如下所示:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
MyObject *myO = (MyObject *)[appDelegate.myOs objectAtIndex:indexPath.row];
myViewController.amount = myO.amount;
[self.navigationController pushViewController:myViewController animated:YES];
[myViewController release];
Run Code Online (Sandbox Code Playgroud)

如果我取消注释最后一行,那么应用程序在返回时崩溃并出现错误:

-[CALayer release]: message sent to deallocated instance 0xd4f860
Run Code Online (Sandbox Code Playgroud)

进一步挖掘我发现崩溃可以进一步缩小到MyViewController的dealoc方法中对[super dealoc]的调用.通过取消注释"[super dealoc]",我们不会崩溃.

我无法进一步缩小范围."super"将是UIViewController类,我无法进一步研究这种处理方法......我可以吗?也许有办法看看0xd4f860到底指的是什么,但我不知道怎么回事?有任何想法吗?

iphone cocoa-touch uitableview uiviewcontroller uinavigationcontroller

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

XCode>仪器>泄漏 - "收集泄漏的内存内容"数据在哪里?

当您检查Leaks仪器中收集泄漏的内存内容时,这有什么作用?我有一个麻烦的泄漏,并认为这个"记忆内容"可能有助于追踪它...但我找不到它!?!

xcode cocoa memory-leaks instruments

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

用于URL的百分比转义'&'的NSString方法

哪种NSString编码方法将百分比(&)字符正确地转义为%26

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
Run Code Online (Sandbox Code Playgroud)

获取空格(%20)和其他坏人但忽略了&符号!?!

encoding cocoa-touch nsstring

10
推荐指数
3
解决办法
2万
查看次数

Mac/usr/local和homebrew

有人知道/usr/local在全新的Mac上,"处女" 文件夹会是什么样子吗?我应该知道,因为我只有一个,但我使用Apple的迁移助手(它没有给你任何关于它将要做什么的细节)来迁移我的邮件,应用程序和东西.好吧,显然留下了那个好奇的"其他文件和文件夹"设置,这意味着我所有编译过的工具和配置文件都会遇到(RMagick,Git,Mongoid,RVM等).

问题是我期待借此机会(新机器)切换到HomeBrew作为包管理器而不是config/make/install每次我想要更新某些东西时自己跳舞.此外,旧机器的版本是针对不同的硬件编译的,甚至不能在这台机器上运行.

那么,我可以直接转储或移动所有东西/usr/local并开始使用自制软件吗?有什么建议?注意事项?我想我也有一些东西/opt/......

macos homebrew local osx-lion

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

控制器规范中的RSpec存根辅助方法

发现类似的问题,但令人惊讶的是没有,我发现,给出一个简单的答案......

试图在我的控制器规范中存根一个辅助方法; 不太确定哪个对象需要加倍?

Controller调用此方法:

#app/helpers/sessions_helper.rb

def signed_in?
  current_user.present?
end
Run Code Online (Sandbox Code Playgroud)

我想在规范中将其存根以返回true/false.

rspec ruby-on-rails rspec-rails

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

bundle update:env:ruby_executable_hooks:没有这样的文件或目录

刚刚rubygems-bundler从1.2.2 更新到1.3.0

确切地说,这不是问题,但现在我遇到了这些错误:

$ bundle update
env: ruby_executable_hooks: No such file or directory
$ bundle install
env: ruby_executable_hooks: No such file or directory
Run Code Online (Sandbox Code Playgroud)

gem rubygems bundler rvm

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

Gem/Bundler加载错误:无法激活...已激活

我运行捆绑更新来更新我的宝石.现在,当我尝试启动本地开发服务器时,我得到了这个.谁知道如何解决?

hostname:myapp username$ rails s
/Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:238:in `activate': can't activate i18n (~> 0.4.1, runtime) for ["mail-2.2.10", "actionmailer-3.0.3", "rails-3.0.3"], already activated i18n-0.5.0 for ["activemodel-3.0.3", "actionpack-3.0.3", "rails-3.0.3"] (Gem::LoadError)
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:254:in `block in activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `each'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:254:in `block in activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `each'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:254:in `block in activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `each'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:253:in `activate'
    from /Users/username/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:1065:in `gem'
    from /Users/username/.rvm/gems/ruby-1.9.2-p0@rails3/bin/rails:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)

rubygems ruby-on-rails bundler

9
推荐指数
2
解决办法
6731
查看次数

在Rails中设计gem:生成user_root_path

成功登录后尝试将用户重定向到他们关联的"主页"页面w/out nil'ing out stored_location_for(resource_or_scope)...这给了我一些无限的重定向循环(非常确定我设置错了).

无论如何,我正在寻找更好的方法......

Devise的文档说明:在签署用户,确认帐户或更新密码后,Devise将查找重定向的作用域根路径.示例:对于 :user资源,user_root_path如果存在则使用 它,否则root_path将使用默认值.这意味着您需要在路径中设置根:root :to => "home"

我是一个新手...如何home_root_path为每个用户生成这个?

rDocs还提到:

- (对象)after_sign_in_path_for(resource_or_scope)

登录后使用的默认URL.所有Devise控制器都使用它.您可以在ApplicationController中覆盖它以为自定义资源提供自定义挂钩.默认情况下,它首先尝试查找resource_root_path,否则使用根路径.对于用户范围,您可以通过以下方式定义默认URL:

 map.user_root '/users', :controller => 'users' # creates user_root_path

 map.namespace :user do |user|
   user.root :controller => 'users' # creates user_root_path
 end
Run Code Online (Sandbox Code Playgroud)

但这些只是给了我undefined local variable or method'#ActionDispatch :: Routing :: Mapper:...`错误的地图.

ruby-on-rails devise

9
推荐指数
3
解决办法
6752
查看次数

Rails调试资产:预编译:如何识别有问题的文件?

我有点绝望; 一直试图调试这个问题好几天了.任何人都知道如何排除故障?也许识别正在创建编码问题的文件?

FWIW:这适用于开发环境: RAILS_ENV=production bundle exec rake assets:precompile --trace

但这在"生产"服务器上失败了......不知道如何开始排除故障:

$ RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Execute assets:precompile
I, [2013-09-26T10:54:13.904512 #8431]  INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_asc-9348a2efdfbcfa28135e10d4f7b42d0d.png
I, [2013-09-26T10:54:13.945109 #8431]  INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_asc_disabled-30ae6b96c67982047ca4cfa0b8ce81b2.png
I, [2013-09-26T10:54:14.007435 #8431]  INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_both-8018c940cc83bb4cf2bf0e68e41fdcc0.png
I, [2013-09-26T10:54:14.011733 #8431]  INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_desc-05521e27371d9dd4e6febce9314bc7ed.png
I, [2013-09-26T10:54:14.017370 #8431]  INFO -- : Writing /rails/myapp/releases/20130926175008/public/assets/sort_desc_disabled-a3215e17d6bf077db02468b895fee228.png
rake …
Run Code Online (Sandbox Code Playgroud)

debugging rake encoding ruby-on-rails asset-pipeline

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