这是PascalCase: SomeSymbol
这是camelCase: someSymbol
这是snake_case: some_symbol
所以我的问题是,是否有这个被广泛接受的名字:some-symbol
?它常用于网址.
我希望能够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
以下两种方法的优点和缺点是什么:
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) 我正在编写一个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 Sinatra应用程序,我有一些代码,我需要在所有路由上执行,除了一些例外.我该怎么做呢?
如果我想在选定的路由上执行代码(白名单样式),我会这样做:
['/join', "/join/*", "/payment/*"].each do |path|
before path do
#some code
end
end
Run Code Online (Sandbox Code Playgroud)
我怎么做反过来(黑名单风格)呢?我想,除了匹配所有路由'/join'
,'/join/*'
并'/payment/*'
如果您将一个新的插座从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跟踪变得更难到了以后的某个时间,这使得它们更难以追踪.仅仅因为台式计算机相对强大并不意味着资源应该被浪费(注意我不是在谈论过早的优化),并且因为苹果工程师是合理的程序员,所以他们必须有充分的理由决定默认情况下使属性合成原子访问器.
我刚开始使用其中一个基于JetBrains IntelliJ的IDE(RubyMine),但我发现突出显示的行真的让人分心.见下面的照片.有什么方法可以把它关掉?
根据文档,它应该支持模糊,请注意"在iOS 5.0及更高版本中可用":
但根据该设备,它不会:
[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) Audiobus使用什么SDK 来提供应用内音频路由?我不知道任何可以促进iOS应用程序间通信的Apple SDK,并且认为应用程序是相互沙盒的,所以我真的很想知道他们是如何解决这个问题的.
某些iOS控件具有Apple内置的本地化字符串."完成","编辑","返回"栏按钮项是一些示例.有没有办法访问这些字符串?
我正在制作带有标准"删除"或"取消"选项的UIActionSheet,就像您在"联系人"应用中删除联系人一样.
有没有办法在代码中引用这些字符串?如果没有,是否有某些地方我至少可以获得这些字符串(比如从Apple应用程序的资源中提取它们)?它可以节省额外的本地化工作,并确保与平台的一致性.
cocoa-touch ×4
objective-c ×4
cocoa ×2
ios ×2
ruby ×2
sinatra ×2
core-image ×1
ide ×1
ios5 ×1
iphone ×1
localization ×1
nsrunloop ×1
rack ×1
rubymine ×1
terminology ×1
xcode ×1