小编And*_*kha的帖子

关于使用运算符"或"的一些细节

考虑以下代码:

int a = 5;
if (a == 5 || a == 10)
  doSomething();
Run Code Online (Sandbox Code Playgroud)

在这种情况下a是5所以第一个条件是真的.程序是否会检查第二个条件是否为真,或者在确定第二个条件确实为5 doSomething()后立即开始执行a

c

3
推荐指数
1
解决办法
149
查看次数

NSLocalizedString和AMLocalizedString之间的区别

使用宏NSLocalizedString和AMLocalizedString有什么区别?

iphone localization

3
推荐指数
1
解决办法
667
查看次数

函数sleep()和[[NSRunLoop currentRunLoop] runUntilDate]的使用差异

请考虑以下代码:

在第一个中,我调用一个创建动画的函数.我以一定的时间间隔做到这一点:

start:;

[self animationMethod];

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:3]];
//sleep(3);

goto start;
Run Code Online (Sandbox Code Playgroud)

在第二个我创建一个动画

- (void)animationMethod
 {
  CAKeyframeAnimation *myAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
CGMutablePathRef curvedPath             = CGPathCreateMutable();

CGPathMoveToPoint(curvedPath, NULL, start.x, start.y);
CGPathAddCurveToPoint(curvedPath, NULL, fcp.x, fcp.y, scp.x , scp.y, end.x, end.y); 

myAnimation.path                = curvedPath;
myAnimation.duration            = flight_duration;
myAnimation.removedOnCompletion = NO;
myAnimation.delegate            = self;  
myAnimation.fillMode            = kCAFillModeForwards;

[myAnimation setValue:identifier forKey:@"id"];

[flyingBug addAnimation:myAnimation forKey:@"bug_flight"];

CGPathRelease(curvedPath);
 }
Run Code Online (Sandbox Code Playgroud)

第三个是委托方法,我用来检查一切正常:

- (void)animationDidStart:(CAAnimation *)anim
{

    NSLog(@"ANIMATION DID START");
}
Run Code Online (Sandbox Code Playgroud)

因此,当我使用NSRunLoop它工作正常时,调用委托方法,但如果我尝试使用sleep(3)函数,那么委托方法不会被调用.

我的问题:

1)你能解释一下NSRunLoop和sleep()之间的区别吗?为什么在使用sleep()时不调用委托方法?

2)也许第三种可能的方法更好用?

iphone sleep objective-c nsrunloop

3
推荐指数
1
解决办法
2835
查看次数

Android系统.按钮看起来没有按下

我刚刚开始使用Android开发.我有一个非常简单的按钮,如下所示:

<Button
    android:id="@+id/howItWorksButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="58dp"
    android:text="@string/how_it_works_button_title" />
Run Code Online (Sandbox Code Playgroud)

在代码中我为它设置了背景颜色:

howItWorksButton.setBackgroundColor(Color.RED);
Run Code Online (Sandbox Code Playgroud)

这是onClickListener:

howItWorksButton.setOnClickListener(new OnClickListener()
    {
        public void onClick(View view)
        {
            Intent intent = new Intent(MainMenuActivity.this, HowItWorksActivity.class);
            MainMenuActivity.this.startActivity(intent);
        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是,当我点击它时,它看起来并没有被按下,它只是保持原样,没有变化.它的onClick方法工作正常,一切都很好用的功能,但我希望它看起来有所改变,就像所有按钮按下时一样.

android button

3
推荐指数
1
解决办法
5526
查看次数

Core Graphics - 如何在不画线的情况下绘制阴影?

看看这段代码:

- (void)drawRect:(CGRect)rect
{
  [super drawRect:rect];

  CGContextRef context = UIGraphicsGetCurrentContext();

  CGSize  myShadowOffset = CGSizeMake (-10,  15);

  CGContextSaveGState(context);

  CGContextSetShadow (context, myShadowOffset, 5);

  CGContextSetLineWidth(context, 4.0);
  CGContextSetStrokeColorWithColor(context,
                                 [UIColor blueColor].CGColor);
  CGRect rectangle = CGRectMake(60,170,200,200);
  CGContextAddEllipseInRect(context, rectangle);
  CGContextStrokePath(context);
  CGContextRestoreGState(context);
}
Run Code Online (Sandbox Code Playgroud)

它所做的就是为这个圆圈绘制一个圆圈和一个阴影。但是我想不通如何只画阴影而不画圆圈?我怎么做?SO上类似问题的答案对我没有帮助

core-graphics objective-c ios

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

如果先前已禁用位置服务,则CLLocationManager不会显示弹出窗口

当我启动我的应用程序时,我检查当前位置授权状态如下:

- (void)checkCurrentStatus
{
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined)
{
   [self.locationManager requestWhenInUseAuthorization];
}
else
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied && ![CLLocationManager locationServicesEnabled])
{
    [self.locationManager startUpdatingLocation];
}
}
Run Code Online (Sandbox Code Playgroud)

如果启用整体位置服务(对于整个设备)而不是仅仅要求用户许可,则会弹出警报.如果它们被禁用(否则如果条件),那么我需要调用,startUpdatingLocation因为[self.locationManager requestWhenInUseAuthorization];当授权状态为kCLAuthorizationStatusDenied(没有任何条件)时,调用无效.好的,所以我打电话startUpdatingLocation然后提醒弹出窗口说:

启用位置服务以允许"AppName"确定您的位置

好的,我转到整体位置服务的设置.在那之后授权状态变成kCLAuthorizationStatusNotDetermined但是当我打电话requestWhenInUseAuthorization它没有效果!没有弹出窗口,用户没有提示授权位置,状态保持不变,我无法使用位置管理器.我该怎么处理?

cocoa-touch objective-c core-location ios

3
推荐指数
1
解决办法
3847
查看次数

为什么两个自定义对象以完全相同的方式定义不相等?

请看一下这段代码:

Card  *first = [[Card alloc] initWithFace:@"Ace" andSuit:@"Hearts"];
Card *second = [[Card alloc] initWithFace:@"Ace" andSuit:@"Hearts"];

if ([first isEqual:second])
    NSLog(@"Equal");
else
    NSLog(@"Not equal"); //WHY???
Run Code Online (Sandbox Code Playgroud)

NSLog告诉我这两个对象不相等.但为什么?我应该怎么做才能使它们平等?

cocoa objective-c

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

什么是sizeof()运算符在C++中做什么

sizeof()用C经营者给其操作数在编译时的大小.它不评估其操作数.例如,

int ar1[10];
sizeof(ar1) // output 40=10*4
sizeof(ar1[-1]) // output 4
int ar2[ sizeof(ar1) ]; // generate an array of 40 ints.
Run Code Online (Sandbox Code Playgroud)

谈到C++模板类,我发现了一些奇怪的结果.

template<typename T>
struct S{
    T a;
};

sizeof( S<int> )       // output 4
sizeof( S<bool> )      // output 1
sizeof( vector<int> )  // output 24
sizeof( vector<char> ) // output 24
sizeof( vector<bool> ) // output 40
Run Code Online (Sandbox Code Playgroud)

我猜sizeofon vector或其他STL容器取决于特定的环境.

问题1.如何sizeof在C/C++中实现?它不能是运行时功能.这是一个宏吗?(我在在线教程vedio中学到的东西).如果它是一个宏,#define它看起来像什么?什么时候sizeof()执行?

问题2.如果我将成员方法添加void f(){}到定义中struct …

c++ stl sizeof

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

如何处理 SKShapeNode 子类中的触摸?

我正在寻找一种简单的方法来处理 SKShapeNode 子类中的触摸。为此,我尝试使用touchesBegan,但它不起作用..

class Shape: SKShapeNode {


convenience init(rectOfSize: CGSize, colorOfRectangle rectColor: UIColor) {

    self.init()

    self.init(rectOfSize: rectOfSize)
    self.fillColor = rectColor
    self.position = CGPointMake(rectOfSize.width, rectOfSize.height)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    print("touch")   
}
}
Run Code Online (Sandbox Code Playgroud)

touchesbegan ios sprite-kit skshapenode swift

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

什么是Objective-C相当于一个空的Swift OptionSet?

请看一下这个简单的Swift代码:

UIView.animate(withDuration: duration, delay: interButtonDelay * Double(expanding ? index : index + 1), options: [], animations: {
            button.transform = expanding ? .init(scaleX: self.scale, y: self.scale) : .identity
            button.alpha = expanding ? 0.0 : 1.0
        }, completion: nil)
Run Code Online (Sandbox Code Playgroud)

这里将一个空数组传递给options参数.我想找出与此相同的正确Objective-C是什么.我认为它应该传递0,但我想完全确定.不幸的是,文档没有说明这一点.

objective-c ios swift

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