小编No *_*ing的帖子

如何在类之间共享常量(枚举)?

我有一些UIPopoverViewControllers消息传递委托UIViewControllers传递UI事件.我没有为每个事件编写单独的方法,而是在委托中有一个方法,它有一个switch语句,它根据传递的常量确定如何处理事件(例如下面的例子).

这可能是糟糕的设计,但这是我想出来的.我已经看到关于枚举或静态类的这个问题,但是不理解答案.

So..is我在做什么,是有办法,我可以在一个地方定义枚举,这样我就不必维护多个代码位,可以很容易地得到不同步?

编辑好的,多挖一点(这里 + 这里)我看到我可能在正确的轨道上.所以我想我需要知道implementationiOS中文件的位置和位置.

enum {
kSetPlaybackType = 0,
kSetAllNotesOn,
kSetAllNotesOff,
kSetVelocity,
kSetDuration
};

- (void)barPropertyAction:(int)action withParam:(NSNumber *)param
{
switch (action) {
    case kSetPlaybackType:
        playbackType = [param intValue];
        if (playbackType == kPalindrome){
            palindromeDirection = kPalindromeUp;
        }
        break;

    case kSetAllNotesOn:
        for (BarNote* note in self.barNoteArray) {
            note.noteOn = YES;
        }
        [self.bar updateWindows];
        break;

    case kSetAllNotesOff:
        for (BarNote* note in self.barNoteArray) {
            note.noteOn = NO;
        }
        [self.bar …
Run Code Online (Sandbox Code Playgroud)

enums objective-c ios

5
推荐指数
1
解决办法
7713
查看次数

NSJSONSerialization + AFNetworking无法识别的选择器错误

更新:我刚刚使用JSONlint测试了从服务器返回的JSON格式,它很好.

我在AFNetworking调用返回JSON数据的php脚本时遇到NSJSONSerialization异常.我在这里查看了同样问题的其他问题,并尝试了这些解决方案,但我仍然得到错误.

它崩溃了这条线:

 NSError *e = nil;
 NSMutableArray *jsonArray = 
 [NSJSONSerialization JSONObjectWithData: jsonData 
                                 options: NSJSONReadingMutableContainers 
                                   error: &e];
Run Code Online (Sandbox Code Playgroud)

错误日志:

2012-03-19 18:10:41.291 imageUploader [3538:207] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFArray bytes]:无法识别的选择器发送到实例0x6867430'

当我通过浏览器调用php脚本时,我的JSON数据如下所示:

[{ "用户": "宾基", "路径": "宾基-0a96f9aab5267c8.jpg", "索引": "101"},{ "用户": "宾基", "路径":"宾基-9cf844252c28553.jpg ", "索引": "102"},{ "用户": "宾基", "路径": "宾基-d6c749d25d33015.jpg", "索引": "103"}]

NSLog的数据如下所示:

({index = 101; path ="binky-0a96f9aab5267c8.jpg"; user = binky;},{index = 102; path ="binky-9cf844252c28553.jpg"; user = binky;},{index = 103; path = "binky-d6c749d25d33015.jpg"; user = binky;})

最后,我做了一个测试,以确保我有有效的JSON数据:

         if ([NSJSONSerialization isValidJSONObject: jsonData]){ …
Run Code Online (Sandbox Code Playgroud)

json ios ios5 afnetworking

5
推荐指数
1
解决办法
5729
查看次数

获取XCode中的错误行号

简单问题:如何在XCode(v 4.2)中获取错误的行号?

我一直在寻找各种解决方案 - 添加了一个异常断点并尝试了这里的建议:xcode-4-2-debug-doesnt-symbolicate-stack-call(似乎没有做任何事情).

这就是我得到的.这不是很有用,因为我知道(在这种情况下)抛出错误的方法.我只是想知道具体的路线.我在可疑线路之前和之后使用printf语句 - 而那种黑客攻击无法编程.

在此输入图像描述

xcode xcode4 xcode4.2

5
推荐指数
1
解决办法
2025
查看次数

为什么需要在图像格式之间进行如此多的转换?(UIImage,CGImage,CIImage)

我很困惑为什么在iOS中需要在图像格式之间进行如此多的转换.例如,如果我将jpg加载到UIImage中然后想要对其进行面部检测,我需要创建一个CIImage以传递给CIDetector.这不代表内存和性能的打击吗?

这是Core Graphics,Core Image和UIKit(可能还有openGL ES,但我不能使用它)之间的遗留物吗?总体而言是重要的琐事?

我会做我需要做的事情,但我想更多地了解这是需要的.此外,我遇到有时会进行转换的问题,并且会混淆格式之间的差异.


更新

好的 - 所以我对这些格式的困惑(或这些格式的混乱......)再次感到震惊.浪费了半个小时.这是我在做的事情:

测试本地图像中的面部,我创建了所需的CIImage:

CIImage *ciImage = [image CIImage];
Run Code Online (Sandbox Code Playgroud)

无论我传入什么方向,我都没有得到任何功能.我知道这个特殊的图像与CIDetectorTypeFace之前的版本有关,而且我遇到了CIImage格式问题.尝试创建CCImage像这样:

 CIImage *ciImage = [CIImage imageWithCGImage:image.CGImage];
Run Code Online (Sandbox Code Playgroud)

和人脸检测工作正常.Arrgh!我确信[image CIImage]最终的CIImage不是零.所以我很困惑.第一种方法只获得一个指针,而第二种方法创建一个新的CIImage.这有什么不同吗?

深入研究UIImage.h文件,我看到以下内容:

// returns underlying CGImageRef or nil if CIImage based
@property(nonatomic,readonly) CGImageRef  CGImage; 

// returns underlying CIImage or nil if CGImageRef based
@property(nonatomic,readonly) CIImage     *CIImage;  
Run Code Online (Sandbox Code Playgroud)

所以我猜这是关键 - 开发者要小心:测试没有...

core-image uikit ios

5
推荐指数
1
解决办法
2022
查看次数

对电子序列的编程结构和存储的建议

我正在研究一些电子装置的电子动画,它将使用几个步进电机和一些高功率LED.在过去,当我做了这种事情时,我使用了系留计算机来处理逻辑和时序.对于这个项目,我想尝试使它自成一体(例如,只是Arduino板).对于Arduino硬件,我有一个Arduino Mega,如果需要,可以用SD卡 屏蔽扩展它以获得更多存储空间.

我真的很欢迎任何有关如何处理此问题的想法或建议(并且我不会要求代码).

对于数据,基本上我将为每个步进器和每个LED存储提示.当然,我需要某种时钟或时间戳来跟踪事物.

步进提示将是这样的:

  • 提示开始时间
  • 步进器ID
  • 步进方向
  • 步进速度
  • 步数

一个LED提示将是这样的:

  • 提示开始时间
  • LED ID
  • 开始亮度
  • 结束亮度
  • 持续时间

所以我想知道的是:

  • 关于数据格式足够紧凑以存储大量线索的想法
  • 对时钟或时间戳的任何建议.(一个简单的计数器是显而易见的选择.)

至于有多少提示/多少数据,因为我刚刚开始这个,我将在我遇到的任何限制范围内工作.

arduino

5
推荐指数
1
解决办法
361
查看次数

在ARC下使用[UIBezierPath CGPath]和CAShapeLayer崩溃

我得到使用BAD访问错误[UIBezierPath CGPath]CAShapeLayer下ARC.我尝试过以各种方式进行桥接,但我不清楚这是不是问题.我已经将崩溃隔离到使用makeToPath方法的结果:

 maskLayer = [CAShapeLayer layer];
 maskLayer.path = [self makeToPath];
Run Code Online (Sandbox Code Playgroud)

但这不会崩溃:

 maskLayer = [CAShapeLayer layer];
 maskLayer.path = [self makeFromPath];
Run Code Online (Sandbox Code Playgroud)

是否存在由创建的路径无效的内容makeToPath?我打算一次性使用fromto path,CABasicAnimation我将这个崩溃排除在外.什么是正确的ARC桥为CGPathRef从s UIBezierPath

-(CGPathRef)makeToPath
{
    UIBezierPath* triangle = [UIBezierPath bezierPath];
    [triangle moveToPoint:CGPointZero];
    [triangle addLineToPoint:CGPointMake(self.view.frame.size.width,0)];
    [triangle addLineToPoint:CGPointMake(0, self.view.frame.size.height)];
    [triangle closePath];
    return [triangle CGPath];
}

-(CGPathRef)makeFromPath
{
    UIBezierPath*rect = [UIBezierPath bezierPathWithRect:self.view.frame];
    return [rect CGPath];
}
Run Code Online (Sandbox Code Playgroud)

更新所以我根据下面的答案更改了我的.h文件,但我仍然遇到了崩溃

-(CGPathRef)makeToPath CF_RETURNS_RETAINED;
-(CGPathRef)makeFromPath CF_RETURNS_RETAINED;
Run Code Online (Sandbox Code Playgroud)

我也尝试让我的方法UIBezierPath这里回答一个实例(如下所示).仍然没有成功.有人想给我一个关于如何解决这个问题的长篇解释吗?

maskLayer.path …
Run Code Online (Sandbox Code Playgroud)

core-animation cashapelayer ios uibezierpath

5
推荐指数
1
解决办法
5098
查看次数

CGContext 与 CALayer

我正在尝试了解 Quartz 2D 并查看在线书籍Quartz 2D Graphics for Mac OS X Developers

让我感到困惑的一件非常基本的事情是 CGContext。例如,我可以使用下面的代码绘制一个简单的“U”形,并在CAShapeLayer不引用 a的情况下在 a 中使用它CGContext。默认情况下,上下文是否隐含/提供CAShapeLayer

我可能在这里混合了几个 iOS/OSX 图形 API,所以也许有人可以澄清我哪里出错了。

CGPoint pt1 =  CGPointMake(100, 100);
CGPoint pt2 =  CGPointMake(150, 100);
CGPoint pt3 =  CGPointMake(150, 200);
CGPoint pt4 =  CGPointMake(190, 200);
CGPoint pt5 =  CGPointMake(190, 100);
CGPoint pt6 =  CGPointMake(210, 100);
CGPoint pt7 =  CGPointMake(210, 250);
CGPoint pt8 =  CGPointMake(100, 250);
CGPoint pt9 =  CGPointMake(100, 100);

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, nil, pt1.x,pt1.y); …
Run Code Online (Sandbox Code Playgroud)

core-animation core-graphics cgcontext cashapelayer ios

5
推荐指数
1
解决办法
2617
查看次数

“ stopPropagation”是否应阻止画布在Fabricjs对象上接收鼠标事件?

这是一个非常简单的问题,但我似乎找不到答案。

我有一个fabricjs附加了鼠标eventListener 的画布实例。我还有一堆带有鼠标事件监听器的对象。我不希望将对象上的鼠标事件传递到画布。stopPropagation和/或stopImmediatePropagation不停止事件。

我使用这些方法是否错误?还是有Fabricjs办法解决这个问题?


包装Fabricjs画布实例的类上的方法

this.canvas.on("mouse:down", this.handleMouseDown);
Run Code Online (Sandbox Code Playgroud)

Fabricjs子类上的方法:

testMouseDownHandler: function (event) {            
        event.e.stopPropagation();
        event.e.stopImmediatePropagation();
        event.e.preventDefault();
        if (event.e.shiftKey) {
            this.canvas.setActiveObject(this);
        }
    },
Run Code Online (Sandbox Code Playgroud)

javascript fabricjs

5
推荐指数
1
解决办法
443
查看次数

node_modules 目录中有不需要的文件?

查看 Electron OSX 应用程序的包内容,我发现其中包含许多节点模块,这些模块在运行时不需要,并且会增加应用程序大小的膨胀。例如,下面第一张图片中的 lightgallery“demo”目录为 1.9 mb。

package.json这让我想知道我的文件或构建脚本是否做错了什么:

"package-mac": "electron-packager . --overwrite  --platform=darwin 
--arch=x64  --prune=true --out=release-builds",
Run Code Online (Sandbox Code Playgroud)

有什么办法可以去掉所有多余的东西吗?


在此输入图像描述


javascript node.js electron electron-builder electron-packager

5
推荐指数
0
解决办法
350
查看次数

转换从CIFaceFeature返回的CGPoint结果

我试图找出如何转换CGPoint返回的结果CIFaceFeature,以便用它们绘制CALayer.以前我已经将我的图像标准化为0旋转以使事情变得更容易,但这会导致使用横向模式下的设备拍摄的图像出现问题.

我一直在这方面工作一段时间没有成功,我不确定我对任务的理解是否不正确,或者我的方法是否不正确,或两者兼而有之.这是我认为正确的:

来自相机的原始图像

根据该CIDetector featuresInImage:options:方法的文档

A dictionary that specifies the orientation of the image. The detection is 
adjusted to account for the image orientation but the coordinates in the 
returned feature objects are based on those of the image.
Run Code Online (Sandbox Code Playgroud)

UIImageView中显示的图像

在下面的代码中,我试图旋转CGPoint,以便通过覆盖UIImageView的CAShape图层绘制它.

我正在做什么(......或者我认为我在做......)是将左眼CGPoint平移到视图的中心,旋转90度,然后将点转换回原来的位置.这不正确但我不知道我哪里出错了.我的方法是错误的还是我实施的方式?

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)
Run Code Online (Sandbox Code Playgroud)

- leftEyePosition是一个CGPoint

CGAffineTransform  transRot = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));

float x = self.center.x;
float y = self.center.y;
CGAffineTransform tCenter = CGAffineTransformMakeTranslation(-x, -y);
CGAffineTransform tOffset = CGAffineTransformMakeTranslation(x, y);

leftEyePosition …
Run Code Online (Sandbox Code Playgroud)

face-detection uiimage ios uiimageorientation cifacefeature

4
推荐指数
1
解决办法
1492
查看次数