我刚刚将我的iPhone 4S软件更新到iOS 7 Beta 2,而我正在最后接触到一个新的应用程序(Phonegap)..不是一个好主意!
完成后,Xcode没有检测到我的iPhone,所以我安装了Xcode 5 beta.在摆弄它之后我终于得到它来检测我的手机.现在唯一的问题是使用的架构存在错误.
以下是产生的错误:
ld: warning: ignoring file /Users/-----------/Library/Developer/Xcode/DerivedData/testtest-bmnbmujiosugcmgeiceofgcfmsec/Build/Products/Debug-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (armv7s): /Users/--------/Library/Developer/Xcode/DerivedData/testtest-bmnbmujiosugcmgeiceofgcfmsec/Build/Products/Debug-iphoneos/libCordova.a
Undefined symbols for architecture armv7s:
"_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from:
_OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o
"_CDVLocalNotification", referenced from:
-[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o
"_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from:
_OBJC_CLASS_$_MainCommandDelegate in MainViewController.o
"_OBJC_CLASS_$_CDVCommandQueue", referenced from:
_OBJC_CLASS_$_MainCommandQueue in MainViewController.o
"_OBJC_METACLASS_$_CDVViewController", referenced from:
_OBJC_METACLASS_$_MainViewController in MainViewController.o
"_OBJC_METACLASS_$_CDVCommandQueue", referenced from:
_OBJC_METACLASS_$_MainCommandQueue in MainViewController.o
"_CDVPluginHandleOpenURLNotification", referenced from:
-[AppDelegate application:handleOpenURL:] in AppDelegate.o
"_OBJC_CLASS_$_CDVViewController", referenced from: …Run Code Online (Sandbox Code Playgroud) 注意这不是关于如何在C#中实现或模拟duck typing的问题...
几年来,我的印象是某些C#语言特性对语言本身定义的数据结构感到沮丧(这对我来说似乎总是一个奇怪的鸡蛋和鸡蛋场景).例如,我的印象是foreach循环只能用于实现的类型IEnumerable.
从那时起,我开始明白C#编译器使用duck typing来确定是否可以在foreach循环中使用对象,GetEnumerator而不是查找方法IEnumerable.这很有意义,因为它消除了鸡蛋和鸡蛋的难题.
我有点困惑,为什么这不是using块的情况似乎并非如此IDisposable.是否有任何特殊原因编译器不能使用duck typing并查找Dispose方法?造成这种不一致的原因是什么?
或许还有其他东西在IDisposable的引擎盖下进行?
讨论为什么你会永远有未实现IDisposable是这个问题的范围之外的Dispose方法的对象:)
我在VB6中有一个代码.任何人都可以告诉我如何写它C#.此代码如下:
Set Amibroker = CreateObject("Broker.Application")
Set STOCK = Amibroker.Stocks.Add(ticker)
Set quote = STOCK.Quotations.Add(stInDate)
quote.Open = stInOpen
quote.High = stInHigh
quote.Low = stInlow
quote.Close = stInYcp
quote.Volume = stInVolume
Set STOCK = Nothing
Set quote = Nothing
Run Code Online (Sandbox Code Playgroud)
CreateObjectC#中的等价物是什么?我尝试添加对com对象的引用,但我找不到任何com对象作为Broker.Application或amibroker
如果一个类有一个构造函数,它将一些值对象作为参数并依赖于它来进行初始化.如果此对象为null,它应该如何反应?
class SomeClass
{
private SomeData _data;
public SomeClass(SomeValueObject obj)
{
_data = obj.Data;
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个例子,但总的来说:如果构造函数被赋予无效参数,那么它应该如何操作,因此无法正确构造?它应该只是返回而不进行任何初始化?将参数设置为某些默认值?抛出异常?别的什么?
我相信这个问题的答案是"它取决于",但有没有最佳实践等?
我写了一个很好的简单的小域模型,其对象图如下所示:
-- Customer
-- Name : Name
-- Account : CustomerAccount
-- HomeAddress : PostalAddress
-- InvoiceAddress : PostalAddress
-- HomePhoneNumber : TelephoneNumber
-- WorkPhoneNumber : TelephoneNumber
-- MobilePhoneNumber : TelephoneNumber
-- EmailAddress : EmailAddress
Run Code Online (Sandbox Code Playgroud)
这个结构与我必须使用的遗留数据库完全不一致,所以我定义了一个平面DTO,其中包含客户图中每个元素的数据 - 我在数据库中有视图和存储过程,这些允许我在这两个方向上使用这种扁平结构与数据进行交互,这一切都很好,花花公子:)
将域模型展平为DTO以进行插入/更新是直截了当的,但我遇到的问题是使用DTO并从中创建域模型...我的第一个想法是实现访问每个元素的访问者客户图,并根据需要从DTO注入值,有点像这样:
class CustomerVisitor
{
public CustomerVisitor(CustomerDTO data) {...}
private CustomerDTO Data;
public void VisitCustomer(Customer customer)
{
customer.SomeValue = this.Data.SomeValue;
}
public void VisitName(Name name)
{
name.Title = this.Data.NameTitle;
name.FirstName = this.Data.NameFirstName;
name.LastName = this.Data.NameLastName;
}
// ... and so on …Run Code Online (Sandbox Code Playgroud) 背景: 我正在尝试编写一个简单的SoapExtension类来记录来自asmx Web服务的入站/出站Soap消息.在这篇关于msdn的文章之后,我已经能够让事情变得有效了.但是,我真的很想了解它为什么/如何工作,而不仅仅是复制和粘贴代码.
问题: 我正在努力掌握的是在示例中处理IO流.我在网上阅读的所有其他文章都以相同的方式处理流...首先获取对原始流的引用,创建内存"工作"流,然后根据需要交换内容.
第一个问题是,在这种情况下,"流链"是什么意思?我对流的理解是,写入任何流将自动写入管道中的"内部"流.如果是这种情况,为什么有必要手动将内容从一个流复制到另一个流?
第二个问题是,在示例复制方法中,他们每次都在创建一个StreamReader和StreamWriter,而不会丢弃它们 - 这是不是给GC带来了额外的压力?在高流量的Web服务上看起来不像你想要的东西......我尝试将两者都包含在使用语句中,但是处理读取器/写入器也关闭了流,这导致了更严重的错误..NET 4有新的Stream.CopyTo(Stream)方法,但对于.NET 3.5来说,更好的方法是什么?
背景:
我有一个用C#编写的开源游戏库,它使用不安全的代码,指针算法等高度优化性能.我最近将该库移植到了Windows Phone.不幸的是,Windows Phone根本不支持不安全的代码,所以我不得不使用预处理器指令来丢弃我的源代码,例如:
#if WINDOWS || XBOX
public unsafe struct Foo
#elif WINDOWS_PHONE
public struct Foo
#endif
Run Code Online (Sandbox Code Playgroud)
由于这些指令的数量,代码库变得非常难以理解并且难以维护,所以我一直在探索其他选项 - 其中一个是使用T4的文本模板.
问题:
在走向T4路线太远之前我需要知道的是,是否可以从文本模板中获取编译符号?我已经查看了模板参数,但从外部世界修改它们似乎并不容易.理想情况下,我希望看到的有点像这样:
<# if (Host.CompilationSymbols.Contains("WINDOWS_PHONE") { #>
public struct Foo
<# { #>
Run Code Online (Sandbox Code Playgroud)
如果有人能够对这些问题有所了解,那么这是可能的,我将不胜感激!
我希望在C#中看到的是关于元组的更好的语法,例如.
var rgb = (1.0f, 1.0f, 1.0f);
// Inferred to be Tuple<float, float, float>
// Translated to var rgb = Tuple.Create(1.0f, 1.0f, 1.0f)
Run Code Online (Sandbox Code Playgroud)
和
var x, y, z = rgb;
// Translated to:
// float x = rgb.Item1;
// float y = rgb.Item2;
// float z = rgb.Item3;
Run Code Online (Sandbox Code Playgroud)
C#语言中有什么禁止这个,或者实现它太难/不现实吗?也许还有其他语言功能会与此直接冲突?
请注意,我不是在询问这是否在微软雷达上,或者即使它与他们对C#的愿景保持一致,只是理论上它有明显的阻挡剂.
编辑 以下是其他CLI语言的一些示例
// Nemerle - will use a tuple type from a language specific runtime library
def colour = (0.5f, 0.5f, 1.0f);
def (r, g, b) = colour;
// F# …Run Code Online (Sandbox Code Playgroud) 如果我定义一个扩展方法,如下所示:
static public String ToTitleCase(this string instance, CultureInfo culture)
{
if (instance == null)
throw new NullReferenceException();
if (culture == null)
throw new ArgumentNullException("culture");
return culture.TextInfo.ToTitleCase(instance);
}
Run Code Online (Sandbox Code Playgroud)
我是否有必要检查字符串实例是否为null并自己抛出空引用异常?或者CLR在这种情况下是否像实例方法一样处理扩展方法并为我处理检查/抛出?
我知道扩展方法只是静态方法的语法糖,也许C#编译器在编译时添加了检查?请澄清 :)
问题似乎很通用,但我是fluentnhibernate的新手,我的所有搜索都没有发现任何有用的东西.
我有一个类似于这个的类层次结构:
public class Person
{
public virtual int Id { get; protected set; }
public virtual string GivenName { get; set; }
public virtual string FamilyName { get; set; }
}
public class Employee : Person
{
public virtual string WhoAmI { get { return "I am just an Employee"; } protected set { } }
}
public class Boss : Employee
{
public override string WhoAmI { get { return "I am the boss."; } protected set { …Run Code Online (Sandbox Code Playgroud) c# ×7
.net ×1
asmx ×1
com ×1
constructor ×1
cordova ×1
domain-model ×1
dto ×1
duck-typing ×1
idisposable ×1
ios7 ×1
soap ×1
stream ×1
t4 ×1
tuples ×1
visitor ×1
xcode5 ×1