小编Tal*_*ode的帖子

C#:如果从多个线程调用静态方法怎么办?

在我的应用程序中,我有一个静态方法,可以同时从多个线程调用.我的数据是否存在混淆的危险?

在我的第一次尝试中,该方法不是静态的,我正在创建该类的多个实例.在那种情况下,我的数据以某种方式混淆了.我不确定这是怎么发生的,因为它有时只会发生.我还在调试.但是现在这个方法是静态的,到目前为止我没有问题.也许这只是运气.我不确定.

c# static multithreading

87
推荐指数
4
解决办法
7万
查看次数

将iVars放在"现代"Objective-C中的哪里?

Ray Wenderlich撰写的"iOS6 by Tutorials"一书中有一篇关于编写更多"现代"Objective-C代码的非常好的章节.在一个部分中,书籍描述了如何将iVars从类的标题移动到实现文件中.由于所有iVars都应该是私有的,这似乎是正确的做法.

但到目前为止,我找到了3种方法.每个人都采用不同的方式.

1.)将@implementantion下的iVars置于一个花括号内(这就是本书中的方法).

2.)将iVars置于@implementantion下,不带花括号

3.)将iVars放在@implementantion(类扩展)上方的私有接口中

所有这些解决方案似乎都运行良好,到目前为止我没有注意到我的应用程序的行为有任何差异.我想没有"正确"的方法,但我需要编写一些教程,我只想为我的代码选择一种方法.

我该走哪条路?

编辑:我只是在这里谈论iVars.不是属性.只有对象只需要自身的其他变量,不应该暴露给外部.

代码示例

1)

#import "Person.h"

@implementation Person
{
    int age;
    NSString *name;
}

- (id)init
{
    self = [super init];
    if (self)
    {
        age = 40;
        name = @"Holli";
    }
    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

2)

#import "Person.h"

@implementation Person

int age;
NSString *name;


- (id)init
{
    self = [super init];
    if (self)
    {
        age = 40;
        name = @"Holli";
    }
    return self;
}
@end
Run Code Online (Sandbox Code Playgroud)

3)

#import "Person.h"

@interface Person()
{ …
Run Code Online (Sandbox Code Playgroud)

objective-c

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

如何保护.NET程序集免受反编译?

我开始使用C#时学到的第一件事就是最重要的一件事.您可以使用Reflector或其他工具反编译任何.NET程序集.许多开发人员都不知道这个事实,当我向他们展示他们的源代码时,他们中的大多数都感到震惊.

防止反编译仍然是一项艰巨的任务.我仍在寻找一种快速,简便,安全的方法.我不想混淆我的代码,所以我的方法名称将是a,b,c左右.反射器或其他工具应该无法将我的应用程序识别为.NET程序集.我已经了解了一些工具,但它们非常昂贵.有没有其他方法来保护我的应用程序?

编辑:

我的问题的原因不是防止盗版.我只想阻止竞争对手阅读我的代码.我知道他们会,他们已经做到了.他们甚至告诉过我.也许我有点偏执,但商业竞争对手阅读我的代码并不能让我感觉良好.

.net c# reflector decompiling

68
推荐指数
6
解决办法
10万
查看次数

C#:Out of Memory异常

今天我的申请今天投了一个OutOfMemoryException.对我来说,这几乎是不可能的,因为我有4GB的RAM和大量的虚拟内存.当我尝试将现有集合添加到新列表时发生错误.

List<Vehicle> vList = new List<Vehicle>(selectedVehicles);  
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这里分配的内存不多,因为我的新列表应该包含的车辆已经存在于内存中.我不得不承认这Vehicle是一个非常复杂的课程,我试图一次性将大约50.000个项目添加到新列表中.但是由于Vehicle应用程序中的所有内容都来自一个只有200MB大小的数据库:我不知道OutOfMemoryException在这一点上可能会导致什么.

c# out-of-memory

65
推荐指数
7
解决办法
18万
查看次数

在NSTextField中按下Enter键时执行操作?

我现在有一个小问题.我想在NSTextField中按下Enter键时执行一个方法.用户应该能够输入他的数据,并且一旦他按下回车键就应该执行计算方法.

xcode cocoa

60
推荐指数
5
解决办法
4万
查看次数

为什么在Swift类中使用必需的Initializers?

我试图理解required在Swift类中使用关键字.

class SomeClass 
{
    required init() {
        // initializer implementation goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

required不会强迫我在我的子类中实现该方法.如果我想覆盖required我的父类的指定初始化程序,我需要写,required而不是override.我知道它是如何工作的但却无法理解为什么我应该这样做.

有什么好处required?据我所知,像C#这样的语言不具备这样的东西,并且工作得很好override.

initialization swift

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

在Xcode 4中重命名目标

在Xcode 4中,我更改了我的cocoa应用程序的目标名称的名称,因为我想更改可执行文件的名称.Build工作正常但在编译Xcode之后仍然会启动仍在项目导航器的Products文件夹中列出的旧可执行文件.

如何在构建后更改Xcode 4启动的应用程序?

xcode4

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

拉伸空WPF ListView以占用剩余空间

我总是在像Stackpanel这样的动态布局控件中使用ListView时遇到问题.

现在我有一个带有Stackpanel的Window作为Root-Control.Stackpanel完美地拉伸并占据整个窗口.在StackPanel内部还有一些其他控件,如文本框和按钮,所有对齐都很好.

最后一个Object是ListView.我希望ListView从StackPanel中获取剩余的空间,但它没有.即使使用VerticalAlignment ="Stretch",我也只能获得列标题.ListView仅在项目添加到项目时才会增长.所以我必须手动设置ListView高度.

如何使ListView填充StackPanel中的剩余空间,即使它是空的?

wpf layout listview

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

在Cocoa/Objective-C中是否有类似通用列表的东西?

我在C#中真正喜欢的是通用列表.一个只能包含一种对象的列表.在Cocoa/Objective-C中有类似通用列表的东西吗?到目前为止,我只知道NSArray谁将指向任何对象.

cocoa list objective-c strong-typing data-structures

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

项目添加到列表框时动画WPF数据模板?

在我的项目中,我有一个绑定到ObservableCollection的WPF Listbox.每次我向Collection添加一个新项目时,相同的项目会自动添加到Listbox中.要显示列表框中的项目,我使用XAML Datatemplate.

我想要做的是在项目添加到Collection/Listbox时为项目设置动画.可以这样做吗?作为datatemplate中的动画可能吗?我想我需要一个触发器以某种方式启动这个动画,但是当添加一个新项目/ datatemplate时会触发什么触发器?

data-binding wpf animation xaml datatemplate

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