我有两个NSArrays:
NSArray *wants = [NSArray arrayWithObjects:
@"apples",
@"oranges",
@"pineapple",
@"mango",
@"strawberries",
nil];
NSArray *needs = [NSArray arrayWithObjects:
@"apples",
@"pineapple",
@"strawberries",
nil];
Run Code Online (Sandbox Code Playgroud)
我想要XOR他们.像wants - needs我这样的东西就是这样
[NSArray arrayWithObjects:
@"oranges",
@"mango",
nil];
Run Code Online (Sandbox Code Playgroud)
我通常会经历一些沉重的循环,但我确信有一种更实用的方法.我该怎么做呢?
正则表达式test()给我提供了Firefox和Chrome的问题,但它在Opera和Safari中运行完美.
麻烦的代码:
var pattern = /(\s+(?!\$\w+)|(^(?!\$\w+)))/g;
if(pattern.test(String(id).replace(/\s+OR|AND\s+/g, ''))) {
searchError("You suck.");
return 1;
}
Run Code Online (Sandbox Code Playgroud)
当你传入白色空间时,它每次都会阻挡它.当你传递类似的东西时'$a b',它将在Firefox/Chrome中每隔一段时间都有效.奇怪的.
如何将一个方法作为参数传递给另一个方法?我在课堂上这样做.
A类:
+ (void)theBigFunction:(?)func{
// run the func here
}
Run Code Online (Sandbox Code Playgroud)
B级:
- (void)littleBFunction {
NSLog(@"classB little function");
}
// somewhere else in the class
[ClassA theBigFunction:littleBFunction]
Run Code Online (Sandbox Code Playgroud)
C级:
- (void)littleCFunction {
NSLog(@"classC little function");
}
// somewhere else in the class
[ClassA theBigFunction:littleCFunction]
Run Code Online (Sandbox Code Playgroud) function a() {
var b = ["b"];
console.log(b);
//console.log(b.slice());
b = b.push("bb");
}
a();
Run Code Online (Sandbox Code Playgroud)
在一个"完美"的世界里,你会认为它console.log会表现出来["b"],但是["b", "bb"]尽管"bb"直到事后才被推迟,但它仍然显示出来.
如果你这样做console.log(b.slice());,你将获得所需的结果["b"].这是为什么?这种并发症背后的原因是什么?我只是想更好地理解这一点,所以我可以更好地避免它发生.
*注意我在最近的一个问题中遇到了同样的问题,但这是一个更简洁的例子.@RightSaidFred引领我到这一点,到目前为止一直是一个巨大的帮助.
这是希望,我可以一个问题的两个部分了解更多的话题.
1)在我看来,你有两个流行的用于声明属性的选项类在objective c.一种是将属性添加到标题的类主体中,例如.
@interface MyClass : NSObject {
NSArray *myArray;
}
Run Code Online (Sandbox Code Playgroud)
或者你也可以在以后添加它@interface的身体和之前@end的语句,像这样.
@interface MyClass : NSObject {
//
}
@property (nonatomic, retain) NSArray *myArray;
Run Code Online (Sandbox Code Playgroud)
这两种"风格"之间有什么区别?你何时选择其中一种?
2)在@property你找到诸如的选项之后(nonatomic, retain).那些是什么以及为什么/何时使用不同的选项?
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[self addGestureRecognizer:panRecognizer];
- (void)pan:(UIPanGestureRecognizer *)gesture {
NSLog(@"%f", [gesture translationInView:self].x);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将记录我当前平移的相对位置,但是如何获得我所在视图的绝对位置?
我只是想把它滑到UIImageView用户手指的任何地方.
如果我知道UIView已添加到父级,是否有本地方式从子级内访问父级?
例如.
[self parent] // returns parent UIView
比方说,我有属性A上classA和财产B上classB,我想classAB有两个属性A和B.我仍然不明白如何使这一切都与作文有关.
我意识到这可以通过继承来完成,但我想学习如何使用组合来做到这一点.我看过一些例子,但我仍然不知道它是如何运作的.
当我启动振荡器时,将其停止,然后重新启动; 我收到以下错误:
Uncaught InvalidStateError: Failed to execute 'start' on 'OscillatorNode': cannot call start more than once.
Run Code Online (Sandbox Code Playgroud)
显然我可以gain用来"停止"音频,但这让我感到很糟糕.什么是一种更有效的方法来停止振荡器,同时能够再次启动它?
var ctx = new AudioContext();
var osc = ctx.createOscillator();
osc.frequency.value = 8000;
osc.connect(ctx.destination);
function startOsc(bool) {
if(bool === undefined) bool = true;
if(bool === true) {
osc.start(ctx.currentTime);
} else {
osc.stop(ctx.currentTime);
}
}
$(document).ready(function() {
$("#start").click(function() {
startOsc();
});
$("#stop").click(function() {
startOsc(false);
});
});
Run Code Online (Sandbox Code Playgroud)
当前的解决方案(在提问时):http://jsfiddle.net/xbqbzgt2/2/
最终解决方案:http://jsfiddle.net/xbqbzgt2/3/
ios ×5
javascript ×3
objective-c ×3
cocoa-touch ×2
arrays ×1
class ×1
cocoa ×1
composition ×1
firefox ×1
iphone ×1
nsarray ×1
properties ×1
regex ×1
safari ×1
selector ×1
subtraction ×1
uiview ×1
xcode ×1