小编Sop*_*unk的帖子

命名约定:"状态"与"状态"

快速提问:我想听听你在命名"Foo.currentState"和"Foo.status"这两个字段时使用"状态"与"状态"时的想法以及类型,如"enum FooState"vs"enum" FooStatus".有没有讨论过的会议?我们应该只使用一个吗?如果是这样,如果没有,我们应该如何选择?

naming-conventions nomenclature

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

使git撤消任何仅限空白的更改?

有没有一种简单的方法可以自动对任何只有空格更改的文件进行git checkout?我正在处理从Eclipse运行的Windows和一些代码生成,所以我得到了新行更改和空白更改,这些更改阻碍了我的工作流程中的噪音,并且难以跟踪实际更改.

即使只是一种很好的方式来报告哪些文件有真正的变化而哪些不是一个开始,而不是必须为每个文件做一个diff -w

git

16
推荐指数
3
解决办法
8336
查看次数

get_home_url()只返回当前的URL

我的问题很简单,我的WP模板需要一个"主页"链接,而该功能get_home_url()只是返回当前的网址.所以,如果我在"example.com/?cat=2",那就是我为我的主页按钮获取的网址.

我有什么想法我做错了吗?我把头发拉了出来.

url wordpress wordpress-theming

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

你需要调用willChangeValueForKey:和didChangeValueForKey:?

我认为自制的@property setter应该是这样的:

-(void) setFoo:(Foo *)newFoo {

  // Safeguards 
  // ...

  [self willChangeValueForKey:@"foo"];
  // Switcheroo
  // ...
  [self didChangeValueForKey:@"foo"];
}
Run Code Online (Sandbox Code Playgroud)

但是我在博客文章中看到很多代码,他们一直在做Cocoa的时间比我长得多,在这里它是这样的:

-(void) setFoo(Foo *)newFoo {

  // Safeguards 
  // ...

  // Switcheroo
  // ...
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我们是否需要调用KVO通知方法?或者,如果您使用现代运行时更新私有iVar,它是否会神奇地完成?

cocoa objective-c key-value-observing

9
推荐指数
1
解决办法
2872
查看次数

Golang的SQL包是否无法进行临时/探索性查询?

根据文档,似乎从Go中获取数据的唯一方法是使用Rows.Scan(),这意味着您必须在编译时知道所有列的计数和类型.

我错过了什么吗?你是如何支持即席查询的?或者甚至将所有列从表中拉出来,将来可能会发生变化?

sql database go

9
推荐指数
2
解决办法
3489
查看次数

运行为1.5的OSX 10.9.2上的Java 1.7?

拉出我的头发.java -version并且javac -version两者报告相同的1.7.0_45,但是当我尝试编译最简单的类时,我得到一个类文件错误:

> cat A.java
public class A {}

> javac A.java
A.java:1: cannot access java.lang.Object
bad class file: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class)
class file has wrong version 51.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
public class A {}
       ^
1 error
Run Code Online (Sandbox Code Playgroud)

肯定没有安装JDK 1.5.我不认为有甚至上OSX运行的任何更多的是1.5 JDK.

FWIW,这是包含"版本"和存根可执行文件的框架目录:

> ls -al /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x  11 root  wheel  374 28 Mar 09:03 .
drwxr-xr-x  12 root  wheel …
Run Code Online (Sandbox Code Playgroud)

java macos osx-mavericks

6
推荐指数
1
解决办法
1560
查看次数

有没有快速查看(不跳转)Xcode中符号的定义/类型的方法?

我知道cmd-double-click,并且一直使用它,它很棒.但有没有一种简单的方法可以让Xcode简单地告诉我弹出窗口中的符号类型或类似的东西,而不必跳过代码中的当前位置?

xcode

5
推荐指数
1
解决办法
296
查看次数

继承的@property不能满足<protocol> @property吗?

我有一个协议:

@protocol Gadget <NSObject>

@property (readonly) UIView *view;

- (void) attachViewToParent:(UIView *)parentView;

@end
Run Code Online (Sandbox Code Playgroud)

和一个"抽象"基类,具有以下实现(作为getter,未显示)-(UIView *)view:

// Base functionality
@interface AbstractGadget : NSObject {
    UIView *view;
}

@property (readonly) UIView *view;

@end
Run Code Online (Sandbox Code Playgroud)

但是当我Gadget在子类中实现协议时AbstractGadget,如下所示:

// Concrete
@interface BlueGadget : AbstractGadget <Gadget> {
}

- (void) attachViewToParent:(UIView *)parentView;

@end


@implementation BlueGadget

- (void) attachViewToParent:(UIView *)parentView {
    //...
}

@end
Run Code Online (Sandbox Code Playgroud)

我收到编译错误告诉我" 警告:属性'视图'需要定义方法'-view'." 我可以使用@dynamic或添加存根方法使其消失:

- (UIView *) view {
    return [super view];
}
Run Code Online (Sandbox Code Playgroud)

但我只是想知道我做的是不支持的东西,我不应该做的事情,或者它只是编译器中的限制/错误?

oop cocoa objective-c cocoa-design-patterns

4
推荐指数
1
解决办法
950
查看次数

Cocoa对可迭代/集合对象有@protocol吗?

我正在编写API,我坚信将尽可能多的类型安全性放入API中.有没有@protocol像NSSet,NSArray等在for (foo in bar) {..}样式循环中将其标记为"可迭代"的东西?目前我有这样的事情:

- (void) doSomethingWith:(id)someItems;
Run Code Online (Sandbox Code Playgroud)

当我想要沿着这些方向做点什么时:

- (void) doSomethingWith:(id <NSIterableCollection>)someItems;
Run Code Online (Sandbox Code Playgroud)

它可行吗?是否想要它让我成为某种静态打字的weanie谁没有做Obj-C的地方?;-)

objective-c

4
推荐指数
1
解决办法
851
查看次数

如何在JQuery中伪造AJAX开始/结束事件?

我正在听ajaxStart()和ajaxStop()来显示/隐藏一个微调器,而我正在编写服务器时在JS中做一些模拟AJAX的东西.它只是调用一个函数来生成带有setTimeout()的模拟数据.现在我只是在微调器上手动调用hide()和show(),但我真的很想在我启动和停止"请求"时告诉JQuery,并让事件通过这种方式,所以当一个真正的 ajax请求仍然在后台时,我不会意外地隐藏()微调器.

这可以轻松完成吗?

编辑:这是我解决的代码,诀窍是保持JQuery.active计数:

function fakeAJAX(f) {
    if(jQuery.active++ === 0 ) {
        jQuery.event.trigger("ajaxStart");
    }
    setTimeout(function () {
        f();
        if(!(--jQuery.active)) {
            jQuery.event.trigger("ajaxStop");
        }
    }, Math.round(Math.random() * 3000 + 250));
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

4
推荐指数
1
解决办法
1427
查看次数