**
可能会引入一些更棘手的错误,因为它会接受任何内容。通常您希望代码在调用错误时会中断。下面是一个示例:
def dostuff(**kwargs):
force = 3
if kwargs.get('reallyhard', False):
force += 5
# and so on
# Now you need luck to find this bug ...
dostuff(fancy=True, funky=False, realyhard=True)
您不应该仅仅因为懒得键入参数名称而使用 **
。但这并不总是可能的,因此也有合法的用途。
<!--[if gt IE 6]><!-->
This code displays on non-IE browsers and on IE 7 or higher.
Include your "vendor script" here.
<!--<![endif]-->
取自此处: http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
您可以使用 boost 或 tr1 shared_ptr 来代替它:
std::map<std::string, shared_ptr< MyClass > > myMap;
myValue = shared_ptr< MyClass >( new MyClass() );
myMap["myKey"] = myValue;
没有所有权问题,没有内存泄漏。
.NET 1.1 程序集包含与 .NET 2 或 .NET 4 程序集相同类型的 IL。仅元数据的格式发生了变化。抖动不介意将其转换为 64 位机器代码,并且 CLR 可以读取旧的元数据格式。仅当 .NET 1.1 程序集包含本机代码时才会出现问题。 Corflags.exe 实用程序,ILONLY 位。没有令人信服的理由来重建该程序集。
您应该尝试下面的代码:
if (objWeb.IsRootWeb)
{
SPContentType contentType = objWeb.ContentTypes["Wiki Page"];
if (!contentType.Fields.ContainsField("Keywords"))
{
SPField field = objWeb.Fields["Keywords"];
SPFieldLink fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
contentType.Update(true);
}
}
else
{
SPContentType contentTyperoot = site.RootWeb.ContentTypes["Wiki Page"];
if (!contentTyperoot.Fields.ContainsField("Keywords"))
{
SPContentType contentType = site.RootWeb.ContentTypes["Wiki Page"];
if (!contentType.Fields.ContainsField("Keywords"))
{
SPField field = site.RootWeb.Fields["Keywords"];
SPFieldLink fieldLink = new SPFieldLink(field);
contentType.FieldLinks.Add(fieldLink);
contentType.Update(true);
}
}
}
我希望有人能从我的代码中得到帮助:)
好吧,您可能应该首先使用 json 库序列化 error_dict
。
import json
out = json.dumps(error_dict)
鉴于您没有提供有关如何设置视图的任何上下文,我只能向您展示我将如何做到这一点:
@view_config(route_name='some_route', renderer='json')
def myview(request):
if #stuff fails to validate:
error_dict = # the dict
request.response.status = 400
return {'errors': error_dict}
return {
# valid data
}
如果您想自己创建响应,那么:
response = HTTPBadRequest()
response.body = json.dumps(error_dict)
response.content_type = 'application/json'
return response
要调试问题,请停止基于 jQuery 是否工作并亲自查看请求以确定 Pyramid 是否正常运行,或者是否存在其他问题。
curl -i <url>
或者甚至只是在浏览器中打开调试器来查看响应中返回的内容。
要在每个 ajax 请求上执行 js,请使用 Omnifaces onloadScript
组件:
varcustomers = allCustomers.Where(c => c.Orders.Any(o => o.ProductID == 6));
要平滑直方图,您需要使用一维滤波器。使用 filter 函数可以轻松完成此操作。这是一个示例:
I = imread('pout.tif');
h = imhist(I);
smooth_h = filter(normpdf(-4:4, 0,1),1,h);
当然,您可以使用您选择的任何平滑函数。平均值就是ones(1,8)
。
由于您的目标只是找到二值化图像的阈值,因此您可以使用 graythresh 函数使用了大津的方法。
您不能将 NSUserDefaults
用于自定义类。从文档中:
NSUserDefaults
类提供了方便的访问方法
常见类型,例如浮点数、双精度数、整数、布尔值和 URL。一个
默认对象必须是属性列表,即(或
对于集合实例的组合):NSData
、NSString
、NSNumber
、NSDate
、NSArray
或NSDictionary
。如果你想存储任何
其他类型的对象,您通常应该将其存档以创建NSData
的实例。
尝试使用 NSData。例如,要将自定义对象加载到数组中,您可以执行以下操作:
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:@"savedArray"];
if (dataRepresentingSavedArray != nil)
{
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if (oldSavedArray != nil)
objectArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
objectArray = [[NSMutableArray alloc] init];
}
要归档数据,请使用:
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:objectArray] forKey:@"savedArray"];
只要您的自定义对象符合 NSCoding
协议,这一切都可以工作:
- (void)encodeWithCoder:(NSCoder *)coder;
{
[coder encodeObject:label forKey:@"label"];
[coder encodeInteger:numberID forKey:@"numberID"];
}
- (id)initWithCoder:(NSCoder *)coder;
{
self = [[CustomObject alloc] init];
if (self != nil)
{
label = [coder decodeObjectForKey:@"label"];
numberID = [coder decodeIntegerForKey:@"numberID"];
}
return self;
}
ABRecord 是一种不透明的 C 类型,因此它不是 Objective-C 意义上的对象。这意味着您无法扩展它,无法在其上添加类别,也无法向其发送消息。您唯一能做的就是使用
ABRecord
作为参数来调用 ABRecord
参考中描述的函数。
您可以做两件事来保留 ABRecord
引用的信息:
通过
获取
。ABRecord
的id
>ABRecordGetRecordID()ABRecordID
定义为 int32_t,因此您可以将其转换为NSInteger
并将其存储在您喜欢的任何位置。您稍后可以从ABAddressBookGetPersonWithRecordID()
或ABAddressBookGetGroupWithRecordID()
取回记录。但是,该记录可能会被用户或其他应用程序更改甚至删除。将记录内的所有值复制到标准
NSObject
子类,并使用上面讨论的NSCoding
来存储它。当然,您将无法从用户对记录所做的更改或添加中受益。
无论哪种方式,你的函数都必须“存在”在某个地方,因此你无法避免声明某种名称空间。我也同意你的观点,即在 XUL 中定义事件比附加它们更好。因此,我建议采用 3+4 的混合:
- 找到一个对于你的插件来说是唯一的但又尽可能吸引人的命名空间,例如“catchyseo”。
将插件的所有代码和所有变量放入此命名空间中。使用匿名函数包装器模式,例如(查看一些 jQuery 插件作为代码示例):
window.catchyseo = (function(){var private = x; [...] })();
在您的命名空间中,公开一些您可以在 XUL 中引用的事件处理程序。
这种方法为您提供了两个世界中最好的:您可以在 XUL 中定义事件,并且您拥有一个封闭的名称空间,没有任何全局名称空间污染 - 除了您的一个名称空间变量。
将应用程序的名称更改为根
步骤:
单击您的应用程序根目录。
单击 f2 按钮。
并更改您想要的 apk 名称
Change the name of your application to the root
steps:
click on your application root.
click f2 button.
and change the name which you want of ur apk
如何通过编辑清单文件来更改apk名称?