> .h file:
NSString *myString;
@property (nonatomic, retain) NSString *myString;
> .m file:
self.myString = [[NSString alloc] init];
Run Code Online (Sandbox Code Playgroud)
如果我没有错,我将得到一个保留计数为+2的NSString实例.对?
我很好奇,因为Apple的位置示例使用"自我".用于初始化.为什么?我检查了它确实显示保留计数为+2.
我想比较两个.NET数组.这是一个比较字节数组的明显实现:
bool AreEqual(byte[] a, byte[] b){
if(a.Length != b.Length)
return false;
for(int i = 0; i < a.Length; i++)
if(a[i] != b[i])
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
这里可以看到更精致的方法(通过谷歌).
我必须在运行时动态生成一个xml文件.请帮我用PHP动态生成以下XML文件.
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<track>
<path>song1.mp3</path>
<title>Track 1 - Track Title</title>
</track>
<track>
<path>song2.mp3</path>
<title>Track 2 - Track Title</title>
</track>
<track>
<path>song3.mp3</path>
<title>Track 3 - Track Title</title>
</track>
<track>
<path>song4.mp3</path>
<title>Track 4 - Track Title</title>
</track>
<track>
<path>song5.mp3</path>
<title>Track 5 - Track Title</title>
</track>
<track>
<path>song6.mp3</path>
<title>Track 6 - Track Title</title>
</track>
<track>
<path>song7.mp3</path>
<title>Track 7 - Track Title</title>
</track>
<track>
<path>song8.mp3</path>
<title>Track 8 - Track Title</title>
</track>
Run Code Online (Sandbox Code Playgroud)
我对在代码中使用锁有一种非常糟糕的感觉,但现在WindowBase的Dispatcher存在,我想在任何地方使用它.
例如,我使用多线程单例WCF服务,它在PRISM的EventAggregator上发布事件,有效负载是不可变的(它只是数据),每个带调度程序的线程都可以优雅地检索事件,在自己的调度程序中完成死锁.(不仅是UI线程,还有具有数据库调用的线程,具有服务调用的线程,具有慢速调用的日志或其他线程的线程,因为我不想冻结UI).
但我的问题是这个Dispatcher与WPF结合在一起,所以当我到处使用它时我感到有点内疚,我觉得调度程序不是为我的用例而创建的.
是否存在另一个不与WPF结合的Dispatcher实现?或者可以滥用它?
谢谢,
更新
Paul Stovell给我的解决方案是创建一个接口IDispatcher,以及一个Wpf Dispatcher的适配器,所以这将更容易测试!这个解决方案对我有好处,因为我重构了我的测试,我现在可以在我的测试中使用SynchronousDispatcherAdapter(感谢它,我不必在我的测试中使用WPF的Dispatcher).
使用Dispatcher而不是BackgroundWorker是有道理的,因为我使用的是多发布者/订阅者模式(使用PRISM),并且由于Dispatcher,每个事件处理程序都会在订阅它们的事件上调用.这意味着可能发生多线程问题的唯一一点是我的事件的有效负载(我使他成为不可变的).
我的不同线程不直接在它们之间进行通信,它们只能发布和订阅事件.因此,数据库调用,日志调用,服务调用,UI调用在不同的线程上运行,彼此不了解(他们只知道他们订阅和发布的事件).
当我从UI访问存储库时,后台工作人员会有意义.
但是我希望在不使用BackgroundWorker的情况下找到一个设计,因为我更喜欢使用这个订阅者/发布者模式(我认为它使我的代码更具可读性)
您已经完成或听说过的CLR/C#代码中的自定义属性有哪些很酷的应用程序?标准属性的有趣新用途也可以!
编辑:由于Java的注释似乎与CLR的属性相同,因此Java注释的使用也是有效的.
这几天学习了一些C#的基本用法。我认为,由于C#经常用于应用程序编程,我们应该以工程的方式练习该语言,而不是解决一些算法问题。但是如果我在工作中找不到与该语言相关的项目,那么练习 C# 的最佳方法是什么?
我注意到有两种不同的方法可以将数据写入XML文件(为简洁起见,省略了错误处理).
第一种方法是构建XML文档,然后将XML保存到文件中:
using (XmlWriter writer = XmlWriter.Create(fileName))
{
writer.WriteStartDocument(true);
writer.WriteStartElement("parentelement");
writer.WriteEndElement();
writer.WriteEndDocument();
}
Run Code Online (Sandbox Code Playgroud)
第二种方法是创建MemoryStream,然后将MemoryStream保存到文件中:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
MemoryStream ms = new MemoryStream();
using (XmlWriter writer = XmlWriter.Create(ms, settings))
{
writer.WriteStartDocument(true);
writer.WriteStartElement("parentelement");
writer.WriteEndElement();
writer.WriteEndDocument();
}
using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write))
{
ms.WriteTo(fs);
ms.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
我猜测使用MemoryStream的逻辑是确保在尝试保存文件之前可以构建XML文件.在将条目添加到XML文件中时,MemoryStream方法是否会提供Atomic写入事件和/或防止写入问题?
任何人都可以解释这是否真的有必要或只是一种过度杀戮的方式来添加不必要的代码行到我的项目?
我想知道在java webservice方法调用和响应中给出的xml中是否有一些巧妙的方法来拦截xml请求发送?我不想将这些xmls打印到标准输出,而是在某些字符串中"捕获"它们.
我有一个Web服务,其输入对象类似于以下内容.
public class MyInput
{
[System.Xml.Serialization.XmlArrayItem("Demographic")]
public DemographicsInfo[] Demographics {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
使用像这样的DemographicsInfo类的定义.
public class DemographicsInfo
{
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Name { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,这会生成这样的XML结构.
<Demographics>
<Demographic Name="String">
<value>string</value>
</Demographic>
<Demographic Name="String">
<value>string</value>
</Demographic>
</Demographics>
Run Code Online (Sandbox Code Playgroud)
我需要把它搞定
<Demographics>
<Demographic Name="String">string</Demographic>
<Demographic Name="String">string</Demographic>
</Demographics>
Run Code Online (Sandbox Code Playgroud)
对于我的生活,我似乎无法找到适用于获取此格式的适当属性.有人有建议吗?
c# ×5
xml ×3
.net ×2
java ×2
annotations ×1
arrays ×1
asmx ×1
attributes ×1
cocoa ×1
dispatcher ×1
iphone ×1
jax-ws ×1
jaxb ×1
memorystream ×1
objective-c ×1
php ×1
web-services ×1
wpf ×1