我试图弄清楚在PHP中处理错误是否有一个好的或更好的方法,而不是我在下面做的.如果电话有问题,我想抛出异常parse_ini_file.这有效,但是有更优雅的方法来处理错误吗?
public static function loadConfig($file, $type)
{
if (!file_exists($file))
{
require_once 'Asra/Core/Exception.php';
throw new Asra_Core_Exception("{$type} file was not present at specified location: {$file}");
}
// -- clear the error
self::$__error = null;
// -- set the error handler function temporarily
set_error_handler(array('Asra_Core_Loader', '__loadConfigError'));
// -- do the parse
$parse = parse_ini_file($file, true);
// -- restore handler
restore_error_handler();
if (!is_array($parse) || is_null($parse) || !is_null(self::$__error))
{
require_once 'Asra/Core/Exception.php';
throw new Asra_Core_Exception("{$type} file at {$file} appears to be
}
}
Run Code Online (Sandbox Code Playgroud)
__ loadConfigError …
我的iPhone应用程序中有一个非常具体的"错误".我正在为按钮的突出显示和正常状态设置两个图像.当你"按下"然后以慢速"触摸"时它按预期工作,但如果你快速点击/点击它,状态之间会有明显的闪烁.这是一个已知的错误还是我错误地设置状态?
这是创建按钮的代码:
UIImage *normalImage = [[UIImage imageNamed:@"btn-small.png"] stretchableImageWithLeftCapWidth:10.0f topCapHeight:0.0f];
UIImage *highlightedImage = [[UIImage imageNamed:@"btn-small-down.png"] stretchableImageWithLeftCapWidth:10.0f topCapHeight:0.0f];
[self setBackgroundColor:[UIColor clearColor]];
[self setBackgroundImage:normalImage forState:UIControlStateNormal];
[self setBackgroundImage:highlightedImage forState:UIControlStateDisabled];
[self setBackgroundImage:highlightedImage forState:UIControlStateHighlighted];
[self setAdjustsImageWhenDisabled:FALSE];
[self setAdjustsImageWhenHighlighted:FALSE];
Run Code Online (Sandbox Code Playgroud)
当点击一个按钮时,它只是禁用自己并启用另一个按钮:
- (IBAction)aboutButtonTouched:(id)sender
{
aboutButton.enabled = FALSE;
rulesButton.enabled = TRUE;
}
- (IBAction)rulesButtonTouched:(id)sender
{
rulesButton.enabled = FALSE;
aboutButton.enabled = TRUE;
}
Run Code Online (Sandbox Code Playgroud)
有关此快速点击闪烁的任何想法?
简单的问题.为什么要使用require_once包含在文件中使用的类?例如,如果我创建一个扩展的类Zend_Db_Table_Abstract,我真的不需要在类声明文件中有这个:
require_once "Zend/Db/Table/Select.php";
Run Code Online (Sandbox Code Playgroud)
无论如何,它们都包含在自动装载机中.明确宣布"进口"是否有性能提升?是单元测试吗?
我有BaseView实现UIViewController.项目中的每个视图都必须实现此BaseView.
在BaseView中,我有方法:
-(void) checkLoginStatus
{
defaults = [[NSUserDefaults alloc] init];
if(![[defaults objectForKey:@"USERID"] length] > 0 )
{
Login *login=[[Login alloc] initWithNibName:@"Login" bundle:nil];
[self.navigationController pushViewController:login animated:TRUE];
[login release];
}
[defaults release];
}
Run Code Online (Sandbox Code Playgroud)
问题是我的Login视图还实现了BaseView,检查登录,然后再次打开LoginView即插入递归调用.
我是否可以检查checkLoginStatus方法,如果请求来自LoginView,则不采取任何其他操作检查登录.例如:
- (void) checkLoginStatus
{
**if(SubView is NOT Login){**
defaults = [[NSUserDefaults alloc] init];
if(![[defaults objectForKey:@"USERID"] length] > 0 )
{
Login *login=[[Login alloc] initWithNibName:@"Login" bundle:nil];
[self.navigationController pushViewController:login animated:TRUE];
[login release];
}
[defaults release];
}
}
Run Code Online (Sandbox Code Playgroud)
请帮忙..
在objective-c中,我看到很多示例代码,其中作者分配局部变量,将其分配给属性,然后释放局部变量.这样做是否有实际原因?我一直只是直接分配给该物业.这会以任何方式导致内存泄漏吗?我想我想知道这是否有任何区别:
HomeScreenBtns *localHomeScreenBtns = [[HomeScreenBtns alloc] init];
self.homeScreenBtns = localHomeScreenBtns;
[localHomeScreenBtns release];
Run Code Online (Sandbox Code Playgroud)
还有这个:
self.homeScreenBtns = [[HomeScreenBtns alloc] init];
Run Code Online (Sandbox Code Playgroud)
假设homeScreenBtns是这样的属性:
@property (nonatomic, retain) HomeScreenBtns *homeScreenBtns;
Run Code Online (Sandbox Code Playgroud)
我正准备将我的应用程序提交到应用程序商店,因此我处于完全优化/ QA模式.
使用Rails 3中的路由,使用命名空间路由,如下例所示......
namespace :admin do
get 'dashboard' => 'dashboard#index'
end
Run Code Online (Sandbox Code Playgroud)
...如何让'/ admin'路由到'dashboard #index'以及'/ admin/dashboard'?最好的方法是定义......
get 'admin' => 'admin/dashboard#index'
Run Code Online (Sandbox Code Playgroud)
在命名空间之外还是有一种更优雅的方法来对资源进行别名?
需要帮助Ember-Data与Zend Rest合作.
起初,我熟悉Zend Framework,因此Rest Adapter很容易设置.telnet的请求显示它有效,响应也有格式良好的HTTP代码.
使用Ember Data的设置稍微复杂一些.我安装了一个带Ubuntu的虚拟机,安装了Ruby 1.9.3,git clone编写了ember-data存储库并用rake生成了JS文件.我还安装了bundler来解决所有依赖项.似乎工作没有错误.这对我来说是第一次.我不熟悉红宝石.
不幸的是,它似乎没有起作用.在我的测试应用程序上,我看到了firebug的其余请求.回应看起来也不错.但对象仍然是空的.
响应:
[{"id":"1","user":"testuser","password":"123","mail":"my@me.com","role":"GUEST","active":"1","hash":null,"last_login":null}]
Run Code Online (Sandbox Code Playgroud)
响应标头:
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Encoding gzip
Content-Length 121
Content-Type application/json; charset=utf-8
Date Wed, 20 Jun 2012 10:49:38 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=15, max=99
Pragma no-cache
Server Apache
Vary Accept-Encoding
X-Powered-By PHP/5.3.13
X-UA-Compatible IE=Edge,chrome=1
Run Code Online (Sandbox Code Playgroud)
我的应用:
// my script
App = Em.Application.create();
App.store = DS.Store.create({
revision: 4,
adapter: DS.RESTAdapter.create({ bulkCommit: false, namespace: 'rest' })
});
App.User = DS.Model.extend({ …Run Code Online (Sandbox Code Playgroud) 我知道一旦用户确认了一个Confirmable帐户,我可以用以下内容更改重定向网址:
def after_confirmation_path_for(resource)
view_context.admin_dashboard_url_for(subdomain: resource.tenant.subdomain)
end
Run Code Online (Sandbox Code Playgroud)
但是如果我想resource在确认之后调用自定义方法,我将如何使用设计?我想我可以坚持这种方法......
def after_confirmation_path_for(resource)
resource.do_thing_after_confirmation
view_context.admin_dashboard_url_for(subdomain: resource.tenant.subdomain)
end
Run Code Online (Sandbox Code Playgroud)
但是这种方法改变模型并不合适.
假设我有一个像这样的简单模型,其中包含一个名为“name”的字段和一个名为“aliased_name”的属性:
class User < ActiveRecord::Base
attr_accessor :aliased_name
end
User.create(name: "Faye Kname")
Run Code Online (Sandbox Code Playgroud)
我可以:
user=User.select(:id, :name)
user.name # Faye Kname
Run Code Online (Sandbox Code Playgroud)
但是我如何使用select来填充aliased_name属性。
user=User.select(:id, "name AS aliased_name")
user.aliased_name # nil
user[:aliased_name] # Faye Kname
Run Code Online (Sandbox Code Playgroud)
我可以访问:aliased_name符号,但未分配属性。我想不必做
user.aliased_name = user[:aliased_name]
Run Code Online (Sandbox Code Playgroud)
我实际上正在对另一个表进行更复杂的连接,并且我试图从连接表中选择一个字段到别名中,但我认为这将是一个更简单的示例。
所以我正在以角度创建警报服务,但无法克服此错误。我知道可以通过在 ts.config 文件中禁用严格的空检查来抑制此错误。但不想采取这种方法尝试过!操作符使其成为可选,但它仍然不起作用,我不确定我是否将操作符放在正确的位置,我是角度新手,任何指导都会非常有帮助,谢谢
alerts: Alert[] = [];
this.alerts!.find(x => x === alert).fade = true;
Run Code Online (Sandbox Code Playgroud)
警报模型.ts
export class Alert {
public id!: string;
public type!: AlertType;
public message!: string;
public autoClose!: boolean;
public keepAfterRouteChange!: boolean;
public fade!: boolean;
constructor(init?:Partial<Alert>) {
Object.assign(this, init);
}
}
export enum AlertType {
Success,
Error,
Info,
Warning
}
Run Code Online (Sandbox Code Playgroud)
objective-c ×3
ruby ×3
iphone ×2
php ×2
activerecord ×1
angular ×1
button ×1
devise ×1
ember-data ×1
ember.js ×1
typescript ×1