我正在构建一个使用RSBarcodes for Swift进行 QR码扫描的应用程序.我想要做的ScanViewController是扫描QR码,验证扫描的内容,然后扫描扫描的数据.目前,当检测到QR代码时,我的UI冻结,并且在我收到错误和内存转储后不久:
'NSInternalInconsistencyException',原因:'只在主线程上运行!'.
也许这不是验证QR码的正确位置,或者不适合segue,但如果没有,我想知道验证和segue应该在哪里进行.我唯一的另一个要求是验证仅在检测到QR码时才会发生.
class ScanViewController: RSCodeReaderViewController{
// Class Variables
var finalObject: IBuiltCode?
let ObjectHelper = ObjectBuilder() // Service to validate and build valid scanned objects
override func viewDidLoad() {
super.viewDidLoad()
self.focusMarkLayer.strokeColor = UIColor.redColor().CGColor
self.cornersLayer.strokeColor = UIColor.yellowColor().CGColor
self.tapHandler = { point in
println(point)
}
self.barcodesHandler = { barcodes in
for barcode in barcodes {
println("Barcode found: type=" + barcode.type + " value=" + barcode.stringValue)
if let builtObject = self.ObjectHelper.validateAndBuild(barcode,
scannedData: barcode.stringValue){
println("Good object.")
self.performQR()
} …Run Code Online (Sandbox Code Playgroud) 我有一个.NET Core Console应用程序.我的目标是能够有条件地DLLImport调用一个函数并调用它,但仅限于Windows运行时.
我想也许如果我可以访问csproj文件中的运行时标识符,我可以有条件地为该运行时定义一个常量,然后在我的c#中我可以包围DLLImport并调用#if/ #endifblocks.
是否可以csproj根据构建项目的运行时间在一个内部设置编译常量?这是针对<Project Sdk="Microsoft.NET.Sdk">以.NET Core为目标的SDK风格的项目格式(以其开头).
注意:这个问题很接近,但适用于project.json样式项目.
或者,是否有更好的方法来实现我的目标?
我被要求提供一个关于企业应用程序大小的指标.有问题的应用程序是一个基于Web的应用程序,我不知道如何量化它的大小.明显但没有用的指标是代码行,文件数量等.确定应用程序大小的一些建议方法是什么,它们将提供真正的意义?
申请注意事项:
我正在使用NetBeans创建我的第一个Ruby on Rails应用程序.有没有办法可以查看模型的所有属性?我应该只是在数据库中寻找?
我试图修改Ruby on Rails应用程序中的数据库迁移.我使用MySQL作为我的数据库,并希望将外键添加到正在创建的表中.我正在使用以下代码,并且在遵循在适当的列上创建空值的规范时,不应用外键约束.
class CreateBookCheckOuts < ActiveRecord::Migration
def self.up
create_table :book_check_outs do |t|
t.integer :book_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_books REFERENCES books(id)"
t.integer :person_id, :null => false, :options =>
"CONSTRAINT fk_book_check_out_people REFERENCES people(id)"
t.datetime :OutDate, :null => false
t.datetime :ReturnDate, :null => true
t.timestamps
end
end
def self.down
drop_table :book_check_outs
end
end
Run Code Online (Sandbox Code Playgroud) 虽然问题检查输入是否是字符串的类型已经关闭,但两个答案在我的脑海中飙升了一个微优化问题:以下哪两个解决方案会表现更好?
Char.IsLetter:string myString = "RandomStringOfLetters";
bool allLetters = myString.All( c => Char.IsLetter(c) );
Run Code Online (Sandbox Code Playgroud)
string s = "RandomStringOfLetters";
bool allLetters = Regex.IsMatch(s, "^[a-z]+$", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
不想只问里德或马克的问题我以为我会写一个快速测试来确定哪个表现更好.问题是我没有做过很多代码优化(我倾向于将代码可读性放在首位).
除了在每个运行之前和之后获取时间戳之外,还有哪些其他(更好的?)选项可以确定哪个解决方案运行得更快?
编辑
我修改了Martin的工作答案Console.WriteLine(...)并将其作为控制台应用程序运行.不确定LinqPad究竟是如何运行应用程序的,但结果大致相同:
41 178
c# optimization premature-optimization micro-optimization speed-test
考虑以下因素QueryOver(季度和中心是传入的变量):
QueryOver.Of<Activity>()
.Where(Restrictions.On<Activity>(a => a.StartDate).IsBetween(quarter.StartDate).And(quarter.EndDate) ||
Restrictions.On<Activity>(a => a.EndDate).IsBetween(quarter.StartDate).And(quarter.EndDate) ||
Restrictions.And(Restrictions.Lt("StartDate", quarter.StartDate), Restrictions.Gt("EndDate", quarter.EndDate))) //TODO: Refactor this to remove magic strings
.And(a => a.Centre == centre)
.OrderBy(a => a.Title).Asc;
Run Code Online (Sandbox Code Playgroud)
此查询工作正常,但我想更改以下限制以删除魔术字符串:
Restrictions.And(Restrictions.Lt("StartDate", quarter.StartDate), Restrictions.Gt("EndDate", quarter.EndDate))
Run Code Online (Sandbox Code Playgroud)
以下是实体(为简洁而剪裁):
public class Quarter
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
public class Activity
{
public string Title { get; set; }
public Centre Centre { get; set; }
public DateTime StartDate { get; set; …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery 内联编辑插件Jeditable.值得庆幸的是,Jeditable提供了一个插件功能,可以扩展它提供的开箱即用的内联编辑功能.
我希望不要重新发明轮子 - 就像Jeditable 已经存在PageDown插件一样?如果我的Google-fu没有出现任何结果.
我理解有课程.form-inline和.form-horizontal课程等但这引出了一些问题:
我是否需要将每个字段及其标签包装在一个中div,并给出div一个类名,例如span3?
在一个现有项目中,我刚刚将NHibernate从3.0升级到3.3.升级并不像我想象的那么简单,但前者与我在SO上找到的MySQL连接器不兼容是必需的.
问题是,我不能使用NHibernate.ByteCode.Castle.ProxyFactoryFactory,因为它需要NH 3.0了(我有一个FileLoadException对NHibernate, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4).
看看NH 3.3拉链内部,我看到没有BytecodeProvider.在NH 3.0中有一个"RequiredForLazyLoading"目录,我拿走了我需要的所有内容.
那么,我应该怎么做NH 3.3.1来启用延迟加载?我很满意Castle,我刚刚升级到3.1版
c# ×2
nhibernate ×2
.net-core ×1
interop ×1
ios ×1
jeditable ×1
markdown ×1
metrics ×1
migration ×1
mysql ×1
netbeans ×1
netbeans6.7 ×1
optimization ×1
pagedown ×1
plugins ×1
queryover ×1
rsbarcodes ×1
ruby ×1
size ×1
speed-test ×1
swift ×1