Objective c 我如何回应用户摇晃iPhone?

Objective c 我如何回应用户摇晃iPhone?,objective-c,cocoa-touch,ios,iphone-sdk-3.0,Objective C,Cocoa Touch,Ios,Iphone Sdk 3.0,好的,为了继续使用Objective-C(我通常只是一个HTML PhoneGap的家伙),我制作了一个简单的Magic 8 ball应用程序。我现在就有了它,所以当我触摸屏幕时,球会“摇晃”并随机响应,然后把它放在标签上。我想做的是,当iPhone本身受到震动时,文本也会更新 这是我的主要观点。m: #import "MainView.h" @implementation MainView - (void)motionEnded:(UIEventSubtype)motion withEve

好的,为了继续使用Objective-C(我通常只是一个HTML PhoneGap的家伙),我制作了一个简单的Magic 8 ball应用程序。我现在就有了它,所以当我触摸屏幕时,球会“摇晃”并随机响应,然后把它放在标签上。我想做的是,当iPhone本身受到震动时,文本也会更新

这是我的主要观点。m:

#import "MainView.h"

@implementation MainView

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
 if (event.type == UIEventSubtypeMotionShake) {
  int rNumber = rand() % 26;
  switch (rNumber) {
                case 0:
                    shook.text = @"Never";
                    break;
            ....25 more entries.....
                default:
                    break;
           }
    }
 }

 - (IBAction)yesNo {
 [NSThread sleepForTimeInterval:0.75];
 int rNumber = rand() % 26;
 switch (rNumber) {
  case 0:
   result.text = @"Never";
   break;
  ........
  default:
  break;
 }
 }

 @end
还有我的主要观点

 #import <UIKit/UIKit.h>
 #import <Foundation/Foundation.h>

 @interface MainView : UIView <UIAccelerometerDelegate> {
     IBOutlet UILabel *result;
  IBOutlet UILabel *shook;
 }

 - (IBAction)yesNo;
 - (void)motionEnded;

 @end     
#导入
#进口
@接口主视图:UIView{
IBUILabel*结果;
IBUILABEL*震动;
}
-(i)是否;
-(无效)终止;
@结束

很明显这里面有个错误,我知道那么多,但在哪里

看来您需要更深入地阅读文档才能弄清这一点。特别是

从该文件中,我建议您尝试以下几点:

  • 重写可以成为第一响应者:并返回YES(如清单4-1所示)
  • OverrideViewDidDisplay:animated:成为第一响应者(如清单4-1所示)
  • 覆盖MotionStart:withEvent:motionCancelled:withEvent:这两个选项,因为框架正在测试视图控制器类,以查看它是否响应这些选择器(如清单4-2所示)
  • 查看(UIViewController从中继承)以了解有关要重写的方法的更多详细信息

    作为一个来自Microsoft/VB/.NET和Android/Java的Cocoa/Objective-C编程背景的人,我强烈建议您花时间阅读文档。起初,苹果的文档似乎难以穿透,但它们实际上相当不错


    我希望这会有帮助。

    为什么这里明显有错误?休眠主线程是一个非常糟糕的主意。你为什么这么做?如果要延迟某些代码的执行,请改用
    -performSelector:withObject:afterDelay:
    。你还应该将随机测试代码重构成一个单独的方法,从两个地方调用。应用程序会崩溃吗?如果是这样,日志怎么说?它没有崩溃。。。震动根本不起作用。我会把睡眠时间改成你建议的。可能是重复的