我正在尝试为我的CCSprite
基础Player
类创建一个方法来启动播放器实例淡入和淡出,直到通过调用停止stopAllActions.
在我的Player
班上,我有:
- (void)pulse
{
[self setOpacity:1.0];
CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5];
CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0];
CCSequence *pulseSequence = [CCSequence actions:
fadeIn, // I get a warning about incompatible pointer types...
fadeOut,
nil];
[self runAction:pulseSequence];
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,也没有解决永远重复的问题.我知道我应该使用,CCRepeatForever
但我没有看到如何正确实现它.
谢谢!
我正在开发一种定制电子设备 - 将其视为一种特殊的数据记录器,我需要连接一台计算机来配置它并提取数据.
我知道我可以在PC上毫不费力地做到这一点,但我想使用iOS设备来做到这一点.
两个问题:
我可以使用常规底座连接器/ USB线进行此操作吗?EA框架会让我进行所有沟通吗?
一旦我提取了数据,从iPad中获取数据的最佳方法是什么?发一封电子邮件,保存到保管箱或其他东西?
谢谢!
作为一个新的程序员,我发现了NSlog
它的魔力,并通过我的代码使用它.它NSZombieEnabled
在调试中非常有用(同时).
我可以在模拟器上看到明确的性能打击,因为它打印出所有这些东西.我不认为我在设备上看到任何这样的打击,但我不确定.
所以留下所有东西需要花费多少钱NSLogs
?是否在设备上使用更多内存?或者编译器是否只是忽略它们,就像我为设备编译时的注释一样?
编辑:
根据我的建议,这是我实施的内容 rano.
在我的App_Prefix.pch
文件中,我补充说:
// DLog is almost a drop-in replacement for NSLog
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead DLog(@"%@", aStringVariable);
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个包含多个自定义类的项目.我有一个CardModel
(NSObject)有一些整数属性来保存数据,和一个Deck
(NSObject)有一个数组来容纳一堆CardModels
然后一个CardView
(UIView)有CardModel
一个属性,当我CardModel
从一个选择一个Deck
.然后我有一堆UIViewControllers
我在一个地方移动UINavigationController
.
我的问题是关于何时何地使用@class
编译器指令.
如果我子类UIViewController
通过使一个新的文件和子类的话,我应该用@class MyViewController
在标题MyViewController.h
或.m
与它在文件中实际使用的控制器(当一个控制器是要实例化另一个控制器类型和象头去把它推到堆栈里.或者我是否需要使用它?是否只有在我真正向我的班级添加新属性时才需要超出库存实施中的内容?好像我把@class
所有的地方,只要确保我没有得到错误,但我当我需要它并不能从根本上理解.
谢谢!
我第一次使用一些Core Animation,在实现我可以翻转的扑克牌的过程中,我决定使用a CALayer
来显示内容(不知道我将如何获得双方,但这是另一个问题)我需要能够翻转它,移动它等等......
我正在使用CATransaction
取得了一些成功 - 在下面的片段中,卡片从左下角移动到左上角并翻转.问题是,我不想以相反的方式翻转,但不知道该怎么说,"嘿,你的方向错了!"
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:2.0f] forKey:kCATransactionAnimationDuration];
myCard.position = CGPointMake(CGRectGetMidX(self.bounds)/2,CGRectGetMidY(self.bounds)/2);
myCard.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0);
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
第二个问题是:如何让它一次完成两次变换?我试过嵌套两个CATransactions
,但第二个只是覆盖了第一个.我也尝试将旋转的矢量更改为2D,就像说围绕x和y轴旋转一样,但这并不等于只用两个单独的轴来翻转它.这是嵌套代码.
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:2.0f] forKey:kCATransactionAnimationDuration];
myCard.position = CGPointMake(CGRectGetMidX(self.bounds)/2,CGRectGetMidY(self.bounds)/2);
myCard.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0); // rotate about x
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:1.0f] forKey:kCATransactionAnimationDuration];
myCard.transform = CATransform3DMakeRotation(M_PI, 0, 1, 0); // rotate about y
[CATransaction commit];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
这里是UIView
动画块里面的......我为角度添加了滑块,为旋转矢量添加了x,y,z,为时间添加了t.翻译在时间= 2t内进行,每次旋转每次只需要t.
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:t * 2] forKey:kCATransactionAnimationDuration]; …
Run Code Online (Sandbox Code Playgroud) 我有一个CCSprite
叫sprite
那就是一个孩子CCLayer
叫movingLayer
这本身就是当前的一个孩子CCLayer
跑我的游戏逻辑,所以self
在这种情况下. movingLayer
在一个重复的永远行动中来回穿过屏幕,sprite
并在它上面骑行.我想要sprite
"开始" movingLayer
并"继续"到self
它可以做自己的一些行动的地方.
当我尝试这样做时,我需要告诉movingLayer
删除sprite
并self
添加sprite.
这就是我所做的...
- (void)attack:(id)sender
{
[sprite stopAllActions];
[movingLayer removeChild:sprite cleanup:YES];
[self addChild:sprite z:1];
CGFloat distance = ccpDistance(sprite.position, ccp(sprite.position.x, -sprite.contentSize.height/2));
id goDown = [CCMoveTo actionWithDuration:distance/moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)];
id repeatDown = [CCRepeatForever actionWithAction:[CCSequence actions:[CCMoveTo actionWithDuration:0 position:ccp(sprite.position.x, sprite.contentSize.height/2+self.contentSize.height)], [CCMoveTo actionWithDuration:moveDuration position:ccp(sprite.position.x, -sprite.contentSize.height/2)], nil]];
id attackAction = [CCSequence actions:goDown, repeatDown, nil];
[sprite runAction:attackAction];
} …
Run Code Online (Sandbox Code Playgroud) 我有一个选择器视图控制器来选择化学源和可能的浓度.如果光源没有浓度,它只会提供一个选择器.它由一个NSDictionary
源类型名称keys
和一个我调用的自定义模型对象填充,Chemical
它有四个属性,两个NSString
,一个float
和一个BOOL
.
当我用包含2个组件的字典触发它时,我想从Chemical
表示的那个中提取四个值.请注意,我使用前两个属性的值填充选择器,但不包括float
或BOOL
.我遍历数组中的第一个组件中选择的键,并检查第二个组件中的字符串与键/值数组中chemConcentration
每个Chemical
s 的属性.当chemConcentration
比赛时,我知道我有权利Chemical
,我可以将其属性发回.
呼!
问题是,即使我知道我进入for循环,它似乎被跳过了.NSLog
在它打印之前的右边,但里面的那个没有. sourceConstant
和sourceIsLiquid
留0.0
和NO
- (IBAction)selectedSourceButton {
NSLog(@"selectedSourceButton pressed");
NSInteger sourceRow = [picker selectedRowInComponent:kSourceComponent];
NSString *selectedSource = [self.sources objectAtIndex:sourceRow];
NSArray *selectedChemicalGroup = [dictionaryOfSources objectForKey:selectedSource];
NSInteger concentrationRow = [picker selectedRowInComponent:kConcentrationComponent];
NSString *selectedConcentration = [[NSString alloc] init];
float selectedConstant = 0.0;
BOOL selectedIsLiquid = NO;
if …
Run Code Online (Sandbox Code Playgroud) 我想在我的Obj-C应用程序中使用一堆用Javascript编写的函数.我制作了一个头文件并获得了第一个转换,但是第二个被卡住了.这是我开始的,到目前为止我做的不起作用......
function calcDayOfWeek(juld)
{
var A = (juld + 1.5) % 7;
var DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}
Run Code Online (Sandbox Code Playgroud)
......和我的尝试:
NSString calcDayOfWeek(float julianDay)
{
float A = (julianDay + 1.5) % 7;
NSString DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}
Run Code Online (Sandbox Code Playgroud)
它应该根据朱利安日数的输入返回一周中的字符串.
编辑:Per Yuji的答案,这是有效的...
NSString* calculateDayOfWeek(float julianDay) {
int a = fmod(julianDay + 1.5, 7);
NSString* dayOfWeek = (a==0)?@"Sunday":(a==1)?@"Monday":(a==2)?@"Tuesday":(a==3)?@"Wednesday":(a==4)?@"Thursday":(a==5)?@"Friday":@"Saturday";
return dayOfWeek;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一些分层视图实现导航控制器.我想使用常规的UIViewController来呈现向下钻取的选项,我不想使用导航栏 - 我想拥有自己的自定义按钮来返回一个级别.
我看到如下例子:
[[self navigationController] pushViewController:nextViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
我的问题是这些:是navigationController
所有UIViewControllers的属性吗?self.navigationController
无论堆栈中的视图如何,我都可以参考吗?如果我处于任意视图中,我是否可以使用包含类似内容的按钮操作[self.navigationController popToRootViewController animated:YES];
我提供的每个视图都需要一个按钮来返回上一个视图或根视图,具体取决于具体情况.我想在每个视图控制器中创建该按钮,并控制它返回的堆栈中的哪个视图.我是在正确的轨道上吗?
NSArray chemConstantArray = [[NSArray alloc] initWithObjects:0.0021400, 0.0012840, 0.0010700, nil];
Run Code Online (Sandbox Code Playgroud)
给我四个错误:
Incompatible type for argument 1 of 'initWithObjects:'
Invalid initializer
Statically allocated instance of Objective-C class 'NSArray'
x 2
这是有道理的,因为浮点数不是对象,但我如何制作浮点数组.我也需要BOOL一个.
我有一个单独的对象PoolManager
,它在plist中加载并保存一些数据.在我的程序中,当需要了解我的池时,它会询问[PoolManager sharedPoolManager]
它的属性.我有一个视图负责设置这些属性,而其他所有其他属性只是从中读取.一切正常,然后无缘无故地说,它开始崩溃了.我设置NSZombieEnabled = YES
并且可以看到,当我访问这两个NSString
属性中的一个时,它们似乎已被释放.调试器消息是:*** -[CFString respondsToSelector:]: message sent to deallocated instance 0x5a336d0
我尝试回到之前的快照,其中一切正常,它仍然这样做.我甚至使用TimeMachine从昨天开始回到项目中,它也是如此.我很困惑.
这是单例对象代码......它是surface
和shape
字符串显然是僵尸.对不起NSLogs
// MyPoolSingleton.h
#import <Foundation/Foundation.h>
#define kFileName @"data.plist"
@interface PoolManager : NSObject {
float volume;
float length;
float width;
float depth;
NSString *surface;
NSString *shape;
BOOL isMetric;
int fcTarget;
int cyaTarget;
int taTarget;
int chTarget;
int saltTarget;
}
@property float volume;
@property float length;
@property float width;
@property float depth;
@property (nonatomic, retain) …
Run Code Online (Sandbox Code Playgroud)