小编lms*_*lms的帖子

连字符分隔的案例的名称是什么?

这是PascalCase: SomeSymbol

这是camelCase: someSymbol

这是snake_case: some_symbol

所以我的问题是,是否有这个被广泛接受的名字:some-symbol?它常用于网址.

programming-languages terminology naming-conventions

474
推荐指数
11
解决办法
14万
查看次数

如何安排块在下一个运行循环迭代中运行?

我希望能够block在下一个运行循环迭代中执行a .它是否在下一个运行循环的开始或结束时执行并不是那么重要,只是执行被推迟到当前运行循环中的所有代码都已完成执行.

我知道以下内容不起作用,因为它与主运行循环交错,所以我的代码可能会在下一个运行循环中执行,但它可能不会.

dispatch_async(dispatch_get_main_queue(),^{
    //my code
});
Run Code Online (Sandbox Code Playgroud)

以下我认为遇到与上述相同的问题:

dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^(void){
    //my code
});
Run Code Online (Sandbox Code Playgroud)

现在我相信以下内容可以正常工作,因为它放在当前运行循环的末尾(如果我错了,请纠正我),这实际上有用吗?

[self performSelector:@selector(myMethod) withObject:nil afterDelay:0];
Run Code Online (Sandbox Code Playgroud)

那个有0间隔的计时器怎么样?文档说明:If seconds is less than or equal to 0.0, this method chooses the nonnegative value of 0.1 milliseconds instead.这是否可以保证在下一次运行循环迭代中执行?

[NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(myMethod) userInfo:nil repeats:NO];
Run Code Online (Sandbox Code Playgroud)

这是我能想到的所有选项,但我仍然没有接近于在下一次运行循环迭代中执行一个块(而不是调用方法),并保证它不会更快.

cocoa cocoa-touch objective-c grand-central-dispatch nsrunloop

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

Objective-C enumerateUsingBlock vs fast enumeration?

以下两种方法的优点和缺点是什么:

enumerateUsingBlock

NSArray *myArray = [NSArray new];
[myArray enumerateObjectsUsingBlock:^(id anObject, NSUInteger idx, BOOL *stop) {
    if (anObject == someOtherObject) {
        [anObject doSomething:idx];
        *stop = YES;
    }
}];
Run Code Online (Sandbox Code Playgroud)

快速列举

NSArray *myArray = [NSArray new];
int idx = 0
for (id anObject in myArray) {
    if (anObject == someOtherObject) {
        [anObject doSomething:idx];
        break;
    }
    ++idx;
}
Run Code Online (Sandbox Code Playgroud)

objective-c

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

如何在Sinatra中解析一次JSON请求体并将其暴露给所有路由?

我正在编写一个API,它接收一个JSON有效负载作为请求主体.

为了得到它,我正在做这样的事情:

post '/doSomething' do
    request.body.rewind
    request_payload = JSON.parse request.body.read

    #do something with request_payload
    body request_payload['someKey']
end
Run Code Online (Sandbox Code Playgroud)

有什么方法可以抽象出来,这样我就不需要为每条路线做这件事了?我的一些路由比这更复杂,因此使用这种方法,request.body将被重新读取并重新分析每个路由,我想避免.

有没有办法让request_payload神奇地可用于路由?像这样:

post '/doSomething' do
    #do something with request_payload, it's already parsed and available
    body request_payload['someKey']
end
Run Code Online (Sandbox Code Playgroud)

ruby rack sinatra

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

在Sinatra你如何制作一个匹配所有路线的"之前"过滤器,除了一些

我有一个Ruby Sinatra应用程序,我有一些代码,我需要在所有路由上执行,除了一些例外.我该怎么做呢?

如果我想在选定的路由上执行代码(白名单样式),我会这样做:

['/join', "/join/*", "/payment/*"].each do |path|
    before path do
        #some code
    end
end
Run Code Online (Sandbox Code Playgroud)

我怎么做反过来(黑名单风格)呢?我想,除了匹配所有路由'/join','/join/*''/payment/*'

ruby sinatra

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

为什么Cocoa的IBOutlet属性默认为原子,而Cocoa Touch不是?

如果您将一个新的插座从Interface Builder拖到一个接口(标题)文件,Xcode 4.6将自动为您创建一个属性...

在iOS(Cocoa Touch)上,它看起来像这样:

@property (weak, nonatomic) SomeClass *someProperty; //nonatomic accessors
Run Code Online (Sandbox Code Playgroud)

而在OS X(Cocoa)上,它看起来像这样:

@property (weak) SomeClass *someProperty; //atomic accessors (implicitly)
Run Code Online (Sandbox Code Playgroud)

为什么?

编辑:我不是在问什么原子做什么或不做什么,我很清楚同步指令和底层互斥(或锁等)保证了setter和getter的原子性.我知道在iOS上,访问器是非原子的,因为UIKit不是线程安全的,因此没有任何东西可以通过使它们成为原子来获得,这只是浪费处理器时间和电池寿命.我在这里谈论默认情况,知道他们正在做什么的程序员将知道他们何时需要使他们的访问器成为原子.

所以我问为什么它们在OS X上默认是原子的.我的印象是Appkit也不是线程安全的.并且拥有原子访问器并不能保证线程的安全性,我甚至会说它反过来说它可以给新手程序员带来线程安全的错觉,并通过延迟崩溃使并发应用程序中的bug跟踪变得更难到了以后的某个时间,这使得它们更难以追踪.仅仅因为台式计算机相对强大并不意味着资源应该被浪费(注意我不是在谈论过早的优化),并且因为苹果工程师是合理的程序员,所以他们必须有充分的理由决定默认情况下使属性合成原子访问器.

xcode cocoa cocoa-touch objective-c

24
推荐指数
2
解决办法
2056
查看次数

在IntelliJ IDEA中隐藏线条突出显示

我刚开始使用其中一个基于JetBrains IntelliJ的IDE(RubyMine),但我发现突出显示的行真的让人分心.见下面的照片.有什么方法可以把它关掉?

http://luka.s3.amazonaws.com/Screen+Shot+2013-05-30+at+11.57.32.png http://luka.s3.amazonaws.com/Screen+Shot+2013-05-30+at+11.57.50.png

ide intellij-idea rubymine

23
推荐指数
1
解决办法
6751
查看次数

iOS 5是否支持模糊CoreImage fiters?

根据文档,它应该支持模糊,请注意"在iOS 5.0及更高版本中可用":

CIFilter类参考

但根据该设备,它不会:

[CIFilter filterNamesInCategory:kCICategoryBlur];
Run Code Online (Sandbox Code Playgroud)

没有回报.

根据以下内容,我的iPhone和模拟器上只有这些过滤器可用(它们都运行5.0):

[CIFilter filterNamesInCategory:kCICategoryBuiltIn]

CIAdditionCompositing,
CIAffineTransform,
CICheckerboardGenerator,
CIColorBlendMode,
CIColorBurnBlendMode,
CIColorControls,
CIColorCube,
CIColorDodgeBlendMode,
CIColorInvert,
CIColorMatrix,
CIColorMonochrome,
CIConstantColorGenerator,
CICrop,
CIDarkenBlendMode,
CIDifferenceBlendMode,
CIExclusionBlendMode,
CIExposureAdjust,
CIFalseColor,
CIGammaAdjust,
CIGaussianGradient,
CIHardLightBlendMode,
CIHighlightShadowAdjust,
CIHueAdjust,
CIHueBlendMode,
CILightenBlendMode,
CILinearGradient,
CILuminosityBlendMode,
CIMaximumCompositing,
CIMinimumCompositing,
CIMultiplyBlendMode,
CIMultiplyCompositing,
CIOverlayBlendMode,
CIRadialGradient,
CISaturationBlendMode,
CIScreenBlendMode,
CISepiaTone,
CISoftLightBlendMode,
CISourceAtopCompositing,
CISourceInCompositing,
CISourceOutCompositing,
CISourceOverCompositing,
CIStraightenFilter,
CIStripesGenerator,
CITemperatureAndTint,
CIToneCurve,
CIVibrance,
CIVignette,
CIWhitePointAdjust
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-image ios5

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

Audiobus for iOS如何运作?

Audiobus使用什么SDK 来提供应用内音频路由?我不知道任何可以促进iOS应用程序间通信的Apple SDK,并且认为应用程序是相互沙盒的,所以我真的很想知道他们是如何解决这个问题的.

cocoa-touch objective-c ios

21
推荐指数
1
解决办法
1905
查看次数

你能以编程方式访问Cocoa Touch中的标准本地化字符串吗?

某些iOS控件具有Apple内置的本地化字符串."完成","编辑","返回"栏按钮项是一些示例.有没有办法访问这些字符串?

我正在制作带有标准"删除"或"取消"选项的UIActionSheet,就像您在"联系人"应用中删除联系人一样.

有没有办法在代码中引用这些字符串?如果没有,是否有某些地方我至少可以获得这些字符串(比如从Apple应用程序的资源中提取它们)?它可以节省额外的本地化工作,并确保与平台的一致性.

iphone localization ios

18
推荐指数
2
解决办法
2593
查看次数