小编Sou*_*osh的帖子

193
推荐指数
4
解决办法
13万
查看次数

C中的"回调"是什么?它们是如何实现的?

从我所做的阅读中,Core Audio在很大程度上依赖于回调(和C++,但这是另一个故事).

我理解设置一个函数的概念(类型),该函数由另一个函数重复调用以完成任务.我只是不明白他们是如何设置以及他们如何工作的.任何例子将不胜感激.

c callback

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

在switch语句中声明变量

我看到了这个问题的一些答案,我明白了 - 你不能在一个内部声明和分配变量switch.但我想知道以下是否正确抛出错误说

错误:'int'之前的预期表达式

码:

switch (i) {
    case 0:
        int j = 1;
        break;
}
Run Code Online (Sandbox Code Playgroud)

为什么NSLog()在它之前拨打电话会导致没有错误?

switch (i) {
    case 0:
        NSLog(@"wtf");
        int j = 1;
        break;
}
Run Code Online (Sandbox Code Playgroud)

c variables declaration objective-c switch-statement

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

KeyValuePair VS DictionaryEntry

KeyValuePair(通用版本)和DictionaryEntry有什么区别?

为什么在通用的Dictionary类中使用KeyValuePair而不是DictionaryEntry?

c#

110
推荐指数
3
解决办法
8万
查看次数

socket connect()vs bind()

两者connect()bind()系统调用都将套接字文件描述符"关联"到一个地址(通常是ip/port组合).他们的原型如下: -

int connect(int sockfd, const struct sockaddr *addr,
               socklen_t addrlen);
Run Code Online (Sandbox Code Playgroud)

int bind(int sockfd, const struct sockaddr *addr,
            socklen_t addrlen);
Run Code Online (Sandbox Code Playgroud)

2个电话之间的确切区别是什么?应该connect()何时使用何时bind()

具体来说,在一些示例服务器客户端代码中,发现客户端正在使用connect()而服务器正在使用该bind()调用.理由并不完全清楚.

c sockets network-programming

104
推荐指数
5
解决办法
10万
查看次数

GMSGroundOverlay动画 - 我应该使用CATiledLayer吗?

我正在尝试使用Google Maps for iOS SDK最新版本1.2.1.2944来动画a GMSGroundOverlay.用户可以控制图像序列,因此使用动画UIImage不是一种可能的遗憾,所以我在动态加载UIImage.将GMSGroundOverlay.icon被设置为UIImage正在更新.

除了高内存使用情况,我似乎在已经达成的限制每当我试图覆盖一个UIImage使用GMSGroundOverlay.icon是超过1000像素X 1000像素,它崩溃.引用UIImage1000px x 1000px可以解决崩溃问题.

虽然我可能会利用CATiledLayer处理图像只加载到内存中,然后进入图标属性GMSGroundOverlay,但是有没有人有任何使用CATiledLayerGoogle Maps for iOS SDK和将图像排序为动画的经验GMSGroundOverlay

crash overlay catiledlayer ios google-maps-sdk-ios

100
推荐指数
1
解决办法
1976
查看次数

将link_to与嵌入式HTML一起使用

我正在使用Twitter的Bootstrap,我有以下HTML:

<a class="btn" href="<%= user_path(@user) %>"><i class="icon-ok icon-white"></i> Do it@</a>
Run Code Online (Sandbox Code Playgroud)

在Rails中执行此操作的最佳方法是什么?我想用,<%= link_to 'Do it', user_path(@user) %>但是让<i class="icon-ok icon-white"></i>我失望了吗?

ruby-on-rails twitter-bootstrap

97
推荐指数
7
解决办法
8万
查看次数

您在Java项目中使用什么策略进行包命名?为什么?

我刚才考虑过这个问题,最近我的商店正在制作它的第一个真正的Java网络应用程序.

作为介绍,我看到两个主要的包命名策略.(要清楚,我不是指整个'domain.company.project'的一部分,我在谈论它下面的包约定.)无论如何,我看到的包命名约定如下:

  1. 功能:根据业务领域,根据其功能在架构上命名您的包,而不是其身份. 另一个术语可能是根据'layer'命名.所以,你有一个*.ui包和一个*.domain包和一个*.orm包.您的包是水平切片而不是垂直切片.

    这是比逻辑命名更常见.事实上,我不相信我曾经见过或听说过这样做的项目.这当然让我很害羞(有点像认为你已经提出解决NP问题的方法),因为我不是非常聪明,我认为每个人都必须有充分的理由按照他们的方式去做.在另一方面,我不反对人们只是缺少在房间里的大象我从来没有听说过的实际参数做包命名这种方式.它似乎是事实上的标准.

  2. 逻辑:根据业务域标识命名您的包,并将与该垂直功能片有关的每个类放入该包中.

    正如我之前提到的,我从未见过或听说过这一点,但这对我来说很有意义.

    1. 我倾向于垂直而不是水平地接近系统.我想进入并开发订单处理系统,而不是数据访问层.显然,我很有可能在该系统的开发中触及数据访问层,但重点是我不这么认为.当然,这意味着当我收到变更单或想要实现一些新功能时,不必为了找到所有相关的类而不必去一堆包中钓鱼.相反,我只是查看X包,因为我正在做的与X有关.

    2. 从开发的角度来看,我认为让您的软件包记录您的业务领域而不是您的架构是一项重大胜利.我觉得这个领域几乎总是系统的一部分,因为系统的体系结构,特别是在这一点上,它的实现几乎变得平凡,因此很难理解.事实上,我可以通过这种类型的命名约定进入系统,并立即从包的命名知道它处理订单,客户,企业,产品等,这似乎非常方便.

    3. 看起来这样可以让你更好地利用Java的访问修饰符.这使您可以更清晰地将接口定义到子系统中,而不是定义到系统的各个层中.因此,如果你有一个你想要透明持久的订单子系统,理论上你永远不会让任何其他东西知道它是持久的,因为不必在dao层中为其持久性类创建公共接口,而是将dao类包装在只有它处理的类.显然,如果您想公开此功能,可以为其提供界面或将其公开.通过将系统功能的垂直切片分成多个包,您似乎失去了很多.

    4. 我认为我可以看到的一个缺点是,它确实使得剥离层更加困难.您必须进入并更改所有软件包中的所有类,而不是仅删除或重命名软件包,然后使用备用技术删除新软件包.但是,我不认为这是一个大问题.这可能源于缺乏经验,但我必须想象,与您进入和编辑系统中的垂直特征切片的次数相比,您更换技术的次数相形见绌.

所以我想那个问题会告诉你,你如何命名你的包裹以及为什么?请理解我并不一定认为我偶然发现了金鹅或其他东西.我对这一切都很陌生,主要是学术经验.但是,我无法发现我的推理中的漏洞,所以我希望你们都能这样,以便继续前进.

java packages naming-conventions

88
推荐指数
4
解决办法
3万
查看次数

结构有什么特别之处?

我知道在C中我们不能从函数返回一个数组,而是一个指向数组的指针.但我想知道什么是特殊的东西structs使它们可以通过函数返回,即使它们可能包含数组.

为什么struct包装使以下程序有效?

#include <stdio.h>

struct data {
    char buf[256];
};

struct data Foo(const char *buf);

int main(void)
{
    struct data obj;
    obj = Foo("This is a sentence.");
    printf("%s\n", obj.buf);
    return 0;
}

struct data Foo(const char *buf)
{
    struct data X;
    strcpy(X.buf, buf);
    return X;
}
Run Code Online (Sandbox Code Playgroud)

c arrays struct return return-value

81
推荐指数
3
解决办法
4443
查看次数

自2012年6月12日起,"undefined"随机附加在我网站上1%的请求网址中

自2012年6月12日11:20 TU,我在varnish/apache日志中看到非常奇怪的错误.

有时,当用户请求一个页面时,几秒钟后我看到一个类似的请求,但是url中最后一个/之后的所有字符串已被"undefined"替换.

示例:http: //example.com/foo/bar触发http://example.com/foo/undefined请求.

当然,这些"未定义"页面不存在,而是返回我的404页面(这是一个带有标准布局的自定义页面,而不是经典的apache 404)

  • 任何页面(从主页到最深)都会发生这种情况
  • 与各种浏览器,(主要是Chrome 19,但Firefox 3.5至12,IE 8/9 ......)但只有1%的交通.
  • 这些请求发送的标头是经典标头(并且没有ajax标头).
  • 对于给定的ip,这似乎是随机出现的:有时在访问的第一页,有时在访问期间的随机页面上,有时在访问期间有几页...

当然它看起来像一个javascript问题(我使用谷歌托管的jquery 1.7.2),但几天没有改变js/html或服务器配置几天以来我从来没有看到过这种错误.当然,html中没有这样的链接.

我还注意到一些有趣的事实:

  • 未定义的请求永远不会被发现为其他页面的引用,而是"真实"页面被用作相同IP的以下请求的引用(用户可以使用404页面上的经典菜单)
  • 我在Google Analytics中没有看到这些页面的任何痕迹,因此我假设没有执行任何javascript(所有页面上都包含跟踪器,包括404)
  • 即使我在网站的社交网络中调用了这个问题,也没有人与我们联系
  • 大多数用户在此之后继续访问

所有这些事实让我觉得这个问题在浏览器中默默地发生,可能是由于错误的附加组件,防病毒软件,浏览器栏或昨天更新的浏览器中集成的蹩脚制造商软件引发的(但我没有发现任何附加组件发布昨天换了chrome,firefox和IE).

这里有人注意到同样的问题,或者有更完整的解释吗?

javascript browser

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