小编Jac*_*nkr的帖子

从另一个数组中减去一个NSArray中的对象

我有两个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)

我通常会经历一些沉重的循环,但我确信有一种更实用的方法.我该怎么做呢?

cocoa cocoa-touch objective-c subtraction nsarray

32
推荐指数
3
解决办法
9145
查看次数

regex.test()只能每隔一段时间运行一次

正则表达式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中每隔一段时间都有效.奇怪的.

javascript regex safari firefox google-chrome

31
推荐指数
2
解决办法
5321
查看次数

Objective-C传递方法作为参数

如何将一个方法作为参数传递给另一个方法?我在课堂上这样做.

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)

iphone xcode objective-c selector ios

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

xcode解决"安全区域布局"错误

非法配置 -  iOS 9.0之前的安全区域布局指南

停止此错误的正确方法是什么?

现在我只是取消选中"使用安全区域布局指南",它允许我编译应用程序而不会出错.

safearealayoutguide

24
推荐指数
3
解决办法
7754
查看次数

Javascript Funky阵列不幸事件

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引领我到这一点,到目前为止一直是一个巨大的帮助.

编辑

JSFiddle上的Runnable示例

javascript arrays

21
推荐指数
2
解决办法
622
查看次数

iOS属性声明澄清

这是希望,我可以一个问题的两个部分了解更多的话题.

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).那些是什么以及为什么/何时使用不同的选项?

properties class ios

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

ios UIPanGestureRecognizer指针位置

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用户手指的任何地方.

ios uipangesturerecognizer

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

UIView父参考

如果我知道UIView已添加到父级,是否有本地方式从子级内访问父级

例如. [self parent] // returns parent UIView

cocoa-touch uiview ios

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

类组合如何在iOS中运行?

比方说,我有属性AclassA和财产BclassB,我想classAB有两个属性AB.我仍然不明白如何使这一切都与作文有关.

我意识到这可以通过继承来完成,但我想学习如何使用组合来做到这一点.我看过一些例子,但我仍然不知道它是如何运作的.

objective-c composition ios

19
推荐指数
2
解决办法
6311
查看次数

(Web Audio API)振荡器节点错误:无法多次调用启动

当我启动振荡器时,将其停止,然后重新启动; 我收到以下错误:

Uncaught InvalidStateError: Failed to execute 'start' on 'OscillatorNode': cannot call start more than once.
Run Code Online (Sandbox Code Playgroud)

显然我可以gain用来"停止"音频,但这让我感到很糟糕.什么是一种更有效的方法来停止振荡器,同时能够再次启动它?

代码(jsfiddle)

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/

javascript javascript-oscillator web-audio-api

17
推荐指数
4
解决办法
4735
查看次数