小编Ori*_*rds的帖子

什么是libswiftRemoteMirror.dylib,为什么它包含在我的应用程序包中?

我有一个iOS应用程序,我最近切换到Xcode 8.作为其中的一部分,我们从swift 2.2切换到2.3(swift 3将在稍后出现).

我有一个自动构建管道,基本上运行xcodebuild在专用构建机器上生成发布二进制文件,然后我对所有这些进行排序(Xcode 8的自动代码签名确实搞砸了所有内容),现在我将我的应用程序上传到iTunes连接,它失败并出现此错误:

ERROR ITMS-90171:"无效的束状结构-二进制文件'MyApp.app/libswiftRemoteMirror.dylib’不允许您的应用程序不能包含独立的可执行文件或库,比支持束的CFBundleExecutable其他参考包编程.有关iOS应用包结构的信息,访问https://developer.apple.com/go/?id=bundle-structure."

果然,如果我解压缩.ipa文件并查看,那就libswiftRemoteMirror.dylib坐在那里.

如果我通过Xcode存档/导出iTunes,那么它会生成一个没有的应用程序包libswiftRemoteMirror.dylib,但是我的应用程序的所有其他版本似乎都有它.即使只是在Xcode中进行调试构建,然后查看输出显示libswiftRemoteMirror.dylib位于我的应用程序包中,表明Xcode本身肯定是在那里,而不是我的自动构建脚本的任何部分.

这个文件是什么,为什么要放在那里,我该怎么办呢?我可以修改我的构建脚本以删除此文件以用于发布版本,但我担心这可能会影响代码签名过程.无论如何我会试一试,看看会发生什么,但感觉这不是正确的事情.

任何意见,将不胜感激.

xcode itunesconnect ios swift xcode8

29
推荐指数
2
解决办法
6706
查看次数

使用WSHttpBinding时,WCF并发请求在服务器上堆积

我有一个WCF客户端/服务器应用程序,它使用WSHttpBinding通过HTTP进行通信.

服务器设置:使用标准WCF进行自托管ServiceHost.我的实际服务类别归结为:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, 
 InstanceContextMode = InstanceContextMode.PerSession, 
 UseSynchronizationContext = false)]
Run Code Online (Sandbox Code Playgroud)

客户端安装:使用visual-studio生成的客户端代理使用同步服务调用(proxy.call_server_method块直到服务器完全响应为止.)

场景:我有一个特定的方法调用,需要20秒才能在服务器上执行.客户端在一个单独的线程中调用此方法,因此它不会被阻止,并且ConcurrencyMode.MultipleWCF也应该在服务器上的单独线程中执行它.

这个理论得到以下事实的支持:当我配置我的应用程序使用时NetTcpBinding,一切正常.

问题:
如果我配置要使用的应用程序WSHttpBinding,则此长方法调用会导致http请求"备份".我已经通过检查我的日志和使用fiddler调试HTTP请求来验证这种行为.

例:

  • 客户端在后台线程上发起20秒长的请求
  • 客户端在前台线程上启动请求B和C.
  • 请求B和C被发送到服务器,在完成20秒长请求之前,服务器不处理它们

但有时候:

  • 在20秒请求返回之前,请求B和C 不会被发送(它们甚至不会出现在小提琴中)(这种情况很少见).
    • 注意:<add address="*" maxconnection="100"/>在客户端的app.config中进行设置会使此(似乎)停止发生.
  • 请求B被立即发送并接收响应,而请求C被保留,直到20秒完成(这是罕见的)

这是来自提琴手演示问题的时间表:(点击查看大图)

如您所见,请求都在服务器上备份.一旦20秒的请求完成,响应都会泛滥,但请注意,有些请求没有被阻止......

所以,问题:

  • 到底发生了什么事?为什么它可以正常使用NetTcpBinding而不能使用WSHttpBinding
  • 为什么行为不一致?
  • 我该怎么办才能修复它?

笔记:

  • 它没有锁定在服务器上.我已经设置了断点并使用了!syncblk它,它一直报告没有锁定.
  • 这不是我的线程(NetTcpBinding不应该工作)
  • 我已经<serviceThrottling maxConcurrentCalls="1000" maxConcurrentInstances="1000" maxConcurrentSessions="1000" />设置了服务器的app.config
  • 20秒的呼叫只是等待一个计时器,它不会破坏CPU或磁盘或网络
  • 我更喜欢一个不涉及重新设计应用程序以使用异步调用的解决方案......这是一大堆遗留代码,我真的不想搞乱我不理解的东西.

concurrency wcf multithreading throttling

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

Swift调用静态方法:type(of:self)vs explicit class name

在swift中,如果没有使用类名称为方法调用添加前缀,则实例func不能调用a static/class func.或者你可以使用type(of: self),例如

class Foo {
    static func doIt() { }

    func callIt() {
        Foo.doIt() // This works
        type(of: self).doIt() // Or this

        doIt() // This doesn't compile (unresolved identifier)
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这有什么区别?它只是编码风格的问题,还是存在一些差异,例如静态或动态调度?

如果它只是编码风格,那么首选的风格是什么?

static-methods swift

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

为什么std :: vector不能使用前向声明?

如果我创建一个这样的类:

// B.h
#ifndef _B_H_
#define _B_H_

class B
{
private:
    int x;
    int y;
};

#endif // _B_H_
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

// main.cpp
#include <iostream>
#include <vector>

class B; // Forward declaration.

class A
{
public:
    A() {
        std::cout << v.size() << std::endl;
    }

private:
    std::vector<B> v;
};

int main()
{
    A a;
}
Run Code Online (Sandbox Code Playgroud)

编译时编译器失败main.cpp.现在我知道的解决方案是#include "B.h",但我很好奇为什么它失败了.无论是g++cl的错误信息都在这个问题很有启发.

c++ stl

24
推荐指数
3
解决办法
1万
查看次数

.NET中的空数组是否使用任何空间?

我有一些代码,我正在返回一个对象数组.

这是一个简化的例子:

string[] GetTheStuff() {
    List<string> s = null;
    if( somePredicate() ) {
        s = new List<string>(); // imagine we load some data or something
    }
    return (s == null) ? 
        new string[0] :
        s.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

问题是,这有多贵new string[0]
我应该只返回null并使调用者接受null作为指示"未找到任何内容"的有效方式吗?

注意:这是在一个循环中调用的,它会运行数百次,所以这是我认为这种优化实际上并不"过早"的少数情况之一.

PS:即使它还为时过早,我仍然想知道它是如何工作的:-)

更新:

最初当我问它是否使用了任何空间时,我从'C/C++'的角度思考问题,有点像在C中,写入char a[5];将在堆栈上分配5个字节的空间,char b[0];并将分配0个字节.

我意识到这不适合.NET世界,但我很好奇,如果这是编译器或CLR将检测和优化的东西,因为一个大小为零的不可调整大小的数组真的不应该(至于我可以看到?)需要任何存储空间.

.net c# arrays

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

显示Databound WPF ComboBox的默认值

我有一个数据绑定WPF comboxbox,我使用该SelectedValuePath属性根据对象的文本以外的东西选择一个选定的值.这可能最好用一个例子来解释:

<ComboBox ItemsSource="{Binding Path=Items}"
          DisplayMemberPath="Name"
          SelectedValuePath="Id"
          SelectedValue="{Binding Path=SelectedItemId}"/>
Run Code Online (Sandbox Code Playgroud)

这个东西的datacontext看起来像这样:

DataContext = new MyDataContext
{
    Items = {
        new DataItem{ Name = "Jim", Id = 1 },
        new DataItem{ Name = "Bob", Id = 2 },
    },
    SelectedItemId = -1,
};
Run Code Online (Sandbox Code Playgroud)

当我显示预先填充的数据时,这一切都很好,其中SelectedItemId匹配有效Item.Id.

问题是,在新项目的情况下,SelectedItemId未知的地方.WPF的作用是将组合框显示为空白.我不想要这个.我想禁止组合框中的空白项; 我希望它显示列表中的第一项.

这可能吗?我可以编写一些代码来明确地SelectedItemId预先设置,但由于UI的缺点,我不得不改变我的数据模型.

c# data-binding wpf combobox

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

修剪C中的字符串

简述:

String.Trim使用win32和标准C api(使用MSVC2008进行编译,因此我可以访问所有C++的东西,如果需要,但我只是试图修剪一个char*).

鉴于存在strchr,strtok以及其他字符串函数的所有方式,肯定应该有装饰功能,或者一个可以改变用途...

谢谢

c string winapi

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

如何使用rails 2.1中的ExceptionNotifier插件修复"未处理的视图路径发现"错误?

将rails 1.2网站升级到2.1后,ExceptionNotifier插件不再有效,抱怨此错误:

ActionView :: TemplateFinder :: InvalidViewPath:找到未处理的视图路径:"/ path/to /appname/vendor/plugins/exception_notification/lib/../views".使用#append_view_path,#prepend_view_path或#view_paths =设置视图路径.

是什么导致它,我该如何解决?

ruby plugins ruby-on-rails exception

20
推荐指数
2
解决办法
951
查看次数

我可以通过编程方式调整视觉工作室"在抛出异常时断开"选项吗?

简述:

在Visual Studio 2008中,Debug菜单有一个Exceptions...选项.
单击此按钮时,将显示"抛出异常时中断"对话框,其中勾选"公共语言运行时异常"旁边的框.

我希望能够以编程方式勾选/取消选中此框.

阐述:

这会导致调试器在抛出任何CLR异常时中断(而不是当它被捕获并重新抛出时),因此这对于故障排除很有用.

问题是,它捕获了所有CLR异常,并且.NET框架恰好在内部抛出并捕获一堆异常,这些异常也会被捕获.这导致调试器打破了一堆我真正不关心的异常,因为它们是框架的内部而不是问题.
WCF 在这方面特别糟糕,幸运的是,我的应用程序在整个地方使用WCF.

我想做的是,关闭复选框,一旦我的应用程序启动(并通过WCF连接阶段和所有内部异常),然后打开它,打破现在的所有异常.

  • 我知道我没有必要抓住"所有clr例外",但是可能的例外列表大约2英里长,滚动浏览并选择你想要的那些(然后如果我错过了怎么办)一些).

debugging exception visual-studio-2008

20
推荐指数
2
解决办法
7234
查看次数

如何在rails STI派生模型中禁用验证和回调?

给定一个模型

class BaseModel < ActiveRecord::Base
  validates_presence_of :parent_id
  before_save :frobnicate_widgets
end
Run Code Online (Sandbox Code Playgroud)

和派生模型(底层数据库表有一个type字段 - 这是简单的rails STI)

class DerivedModel < BaseModel
end
Run Code Online (Sandbox Code Playgroud)

DerivedModel将以良好的OO方式继承所有的行为BaseModel,包括validates_presence_of :parent_id.我想关闭验证DerivedModel,并防止回调方法被触发,最好不要修改或以其他方式破坏BaseModel

什么是最简单,最强大的方法?

validation ruby-on-rails callback single-table-inheritance

19
推荐指数
3
解决办法
1万
查看次数