在AssemblyInfo有两个集版本:
AssemblyVersion:指定要归属的程序集的版本.AssemblyFileVersion:指示编译器使用Win32文件版本资源的特定版本号.Win32文件版本不需要与程序集的版本号相同.我可以Assembly Version使用以下代码行:
Version version = Assembly.GetEntryAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)
但我怎么能得到Assembly File Version?
如何可以转换NSString包含多个任何原始数据类型(例如int,float,char,unsigned int,等等)?问题是,我不知道字符串在运行时将包含哪种数字类型.
我知道如何做到这一点,但我不确定这是否适用于任何类型,也是无符号和浮点值:
long long scannedNumber;
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanLongLong:&scannedNumber];
NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我正在写一个TFS Checkin策略,它检查我们的源文件是否包含我们的文件头.
我的问题是,我们的文件头包含一个特殊字符"©",不幸的是我们的一些源文件是用ANSI编码的.因此,如果我在策略中读取这些文件,则字符串看起来像"Copyright 2009".
string content = File.ReadAllText(pendingChange.LocalItem);
Run Code Online (Sandbox Code Playgroud)
我厌倦了改变字符串的编码,但它没有帮助.那么如何阅读这些文件,我得到了正确的字符串"Copyright©2009"?
感谢帮助!
关心恩伊
不幸的是,只能通过"pop"从堆栈中删除项目.堆栈没有"删除"方法或类似的东西,但我有一个堆栈(是的,我需要一个堆栈!),我需要从中删除一些元素.
有这个诀窍吗?
我有一个方法调用表达式并尝试调用该方法.我找到了一种方法,但是我在检索参数值方面遇到了问题,因为不是每个参数都用ConstantExpression描述.
Expression<Action<T>> = t => t.DoSomething(Par0, Par1, Par2);
MethodCallExpression methodCallExpression = selector.Body
as MethodCallExpression;
// get the information which is needed to invoke the method from the provided
// lambda expression.
MethodInfo methodInfo = methodCallExpression.Method;
object[] arguments = methodCallExpression.Arguments.OfType<ConstantExpression>()
.Select(p => p.Value).ToArray();
// invoke the expression on every item within the enumerable
foreach (TSource item in source)
{
methodInfo.Invoke(item, arguments);
}
Run Code Online (Sandbox Code Playgroud)
另外,我已经看到了一些其他方法来调用该方法,现在我不确定这是什么方法.
var func = expression.Compile();
var success = func.Invoke();
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何从中检索方法参数值methodCallExpression.Arguments?
或者有更简单的方法来实现我的目标吗?
我在运行时在objective-c中有一个对象,我只知道KVC键,我需要检测此属性的返回值类型(例如,我需要知道它是NSArray还是NSMutableArray),我该怎么做呢?
我在项目中添加了一个协变接口:
interface IView
{
}
interface IPresenter<out TView> where TView : IView
{
TView View { get; }
}
Run Code Online (Sandbox Code Playgroud)
我创建了一些类,实现了这些接口:
class TestView : IView
{
}
class TestPresenter : IPresenter<TestView>
{
public TestView View
{
get { return something; }
}
private void DoSomething()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地使用它:
IPresenter<IView> presenter = new TestPresenter();
Run Code Online (Sandbox Code Playgroud)
所以一切似乎都是正确的,所以我认为我的协方差用法是正确的.不幸的是,我们的单元测试项目包含位于同一项目中的某些类型的私有访问器,如协变接口,这会导致构建失败.
无法从程序集'GenericInheritanceTest_Accessor,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'GenericInheritanceTest.IPresenter_Impl`1',因为它声明了协变或逆变类型参数,而不是接口或委托.
究竟是什么问题?我的实施是否有失败,分别是.怎么解决这个问题?不能,我们一旦使用协变类型就必须避免访问者?是否可以阻止为某些类型创建访问器来解决此问题?
我需要检测是否在枚举值中设置了一个标志,哪个类型用Flag属性标记.
通常它是这样的:
(value & flag) == flag
Run Code Online (Sandbox Code Playgroud)
但是因为我需要通用泛型(有时在运行时我的事件只有一个"Enum"引用.我找不到一个简单的方法来使用&运算符.目前我这样做:
public static bool IsSet<T>(this T value, T flags) where T : Enum
{
Type numberType = Enum.GetUnderlyingType(typeof(T));
if (numberType.Equals(typeof(int)))
{
return BoxUnbox<int>(value, flags, (a, b) => (a & b) == b);
}
else if (numberType.Equals(typeof(sbyte)))
{
return BoxUnbox<sbyte>(value, flags, (a, b) => (a & b) == b);
}
else if (numberType.Equals(typeof(byte)))
{
return BoxUnbox<byte>(value, flags, (a, b) => (a & b) == b);
}
else if (numberType.Equals(typeof(short)))
{
return BoxUnbox<short>(value, flags, (a, …Run Code Online (Sandbox Code Playgroud) Apple为对象序列化/反序列化提供了NSArchiver和NSUnachriver,但是这不能处理任何自定义xml架构.因此,必须手动填充具有任何自定义xml架构的数据的对象结构.由于iPhone开发者社区正在快速增长,许多新手程序员都在绝望地处理可用的xml解析可能性.
iPhone SDK仅为xml解析提供NSXmlParser,这对于读取xml文件的某些部分比填充整个对象结构更有用,这真的很痛苦.
另一种可能性是着名的libxml库,它是用ANSI C编写的 - 对于那些开始使用objective-c进行编程并且之前从未学过适当的C的人来说,它不容易使用.事件中有很多可用的包装器,处理xml对于新手来说可能是一种痛苦.
在这里我的想法发生了.自动填充对象结构的XmlSerializer库可以使许多程序员更轻松地提高应用程序质量.我的想法应该像这样工作:
xml文件
<Test name="Michael" uid="28">
<Adress street="AlphaBetaGammastrasse 1" city="Zürich" postCode="8000" />
<Hobbies>
<Hobby describtion="blabla"/>
<Hobby describtion="blupblup"/>
</Hobbies>
</Test>
Run Code Online (Sandbox Code Playgroud)
要填写的课程
@interface Test : NSObject {
NSString *name;
Adress *adress;
NSArray *hobbies;
int uid;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, retain) Adress *adress;
@property (nonatomic, retain) NSArray *hobbies;
@property (nonatomic, readwrite) int uid;
@end
@interface Adress : NSObject {
NSString *street;
NSString *city;
int postCode;
}
@property (nonatomic, copy) NSString *street;
@property (nonatomic, …Run Code Online (Sandbox Code Playgroud) 我试图传递一个二维数组,其大小可以是动态的,作为方法参数.
在方法中,我想使用具有通用数组语法的数组.
int item = array[row][column];
Run Code Online (Sandbox Code Playgroud)
要传递数组是不可能的,所以我想要使用指针指针.
- (void)doSomethingWithArray:(int **)array columns:(int)nColumns rows:(int)nRows
{
int item = array[n][m];
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将数组作为参数传递时,我遇到了问题
int array[numberOfRows][numberOfColumns];
[someObject doSomethingWithArray:array columns:numberOfColumns rows:numberOfRows];
Run Code Online (Sandbox Code Playgroud)
我发现了很多提示和技巧,但不知怎的,我想用它的方式并没有真正起作用.
感谢您的帮助,恩伊
XCode是否存在类似Visual Studio的T4文本模板生成工具?
感谢您的帮助,Enyra
我尝试将 except 方法与自定义相等比较器一起使用,但它不起作用。
我的平等比较器:
public class BusinessObjectGuidEqualityComparer<T> : IEqualityComparer<T> where T : BusinessObject
{
#region IEqualityComparer<T> Members
/// <summary>
/// Determines whether the specified objects are equal.
/// </summary>
/// <param name="x">The first object of type <paramref name="T"/> to compare.</param>
/// <param name="y">The second object of type <paramref name="T"/> to compare.</param>
/// <returns>
/// <see langword="true"/> If the specified objects are equal; otherwise, <see langword="false"/>.
/// </returns>
public bool Equals(T x, T y)
{
return (x == null && y …Run Code Online (Sandbox Code Playgroud) c# ×7
objective-c ×4
.net ×2
accessor ×1
ansi ×1
assemblies ×1
c ×1
casting ×1
covariance ×1
encoding ×1
enums ×1
flags ×1
generics ×1
iphone ×1
lambda ×1
linq ×1
nsnumber ×1
nsstring ×1
parameters ×1
pointers ×1
properties ×1
runtime ×1
stack ×1
t4 ×1
texttemplate ×1
types ×1
unit-testing ×1
version ×1
xcode ×1
xml ×1