我有一个C ++类,我想使用其中包含头文件中的所有代码,而不是CPP文件。 我试图从一个inheritance了UIViewController类的Objective-C文件中调用它。 我已经将该文件重命名为.mm,并导入了C ++文件的头文件。 当我编译时,当我尝试从C ++类中访问一个方法时,我一直收到一个编译时错误,该方法说明Request for member '<method>' in '<objectName>' which is of non-class type '<C++ class name>' 。 我做了一个search,似乎头是通常的问题,但我已经在我的文件中包含标题。 还有什么呢? (如果需要,我可以包含generics代码,但是我不确定是否允许我显示实际的代码,因为它属于第三方)。
我知道要在iOS应用程序中使用FFmpeg,您可以使用./configure和make来生成将添加到项目中的.a文件。 我的问题是,一旦.a文件出现在项目导航器和链接库中的二进制文件部分,你如何在你的类中实际使用它们,我发现在#import语句中没有使用“框架” ,所以我不知道如何访问类的方法和属性。
我已经从一个工作项目复制一个.CPP和它的.h文件到一个新的。 我将.CPP的结尾重新命名为.mm,但它仍然给我错误。 在.h文件中,在类定义class MeterTable附近,它表示期望; 在.mm文件中,有各种错误。 我想通过改变实现文件的结尾.mm它会清除所有这些错误。 是的,在旧项目下编译的原始.CPP文件。
是否有可能从一个特定的方法初始化单例,而不是执行应用程序? 我需要在viewdidload中运行一个方法,这取决于Singleton是否返回nil,但是因为它在应用程序运行时被创build,所以它永远不会返回nil。
我试图在我的游戏中创build一个暂停button。 在你点击屏幕的时候,它会在移动器spriteNode上施加一个冲动。 问题是,当我点击暂停button时,它仍然应用冲动。 我怎样才能创build一个暂停button,而不创build冲动也。 我试着改变if语句,如果然后做最后的冲动部分的其他部分,但这不会工作。 touchBegan方法: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInNode:self]; SKNode *node = [self nodeAtPoint:location]; //if fire button touched, bring the rain if ([node.name isEqualToString:@"repeat"]) { SKTransition *reveal = [SKTransition fadeWithDuration:2.0 ]; MyScene *newScene = [[MyScene alloc] initWithSize: CGSizeMake(self.size.width,self.size.height)]; // Optionally, insert code to […]
我想按降序sorting包含datestring的数组,我已经尝试过所以答案,但我得到错误的输出。 请看我的代码如下: NSArray *dateArray=[NSArray arrayWithObjects:@"01/12/2012",@"01/26/2011",@"02/09/2005",@"02/24/2006",@"03/19/2007",@"07/14/2011",@"08/17/2007",@"10/04/2007",@"10/31/2006",@"12/05/2012",@"12/06/2006",@"12/23/2008",nil]; NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; [formatter setDateFormat:@"MM/DD/YYYY"]; NSMutableArray *tempArr=[[NSMutableArray alloc]init]; for (int i=0; i<[dateArray count]; i++) { NSString *dt=[dateArray objectAtIndex:i]; NSDate *newDt=[formatter dateFromString:dt]; [tempArr addObject:newDt]; } NSLog(@"tempArr is %@",tempArr); 我得到如下的控制台输出: 2013-08-27 15:29:50.418 sample [3688:c07] tempArr是(“2011-12-24 18:30:00 +0000”,“2010-12-18 18:30:00 +0000”,“ 2004-12-18 18:30:00 +0000“,”2005-12-24 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2010-12-18 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2005-12-24 […]
我有一个小testing应用程序,只是在3页之间循环。 这里是AppDelegate: public override bool FinishedLaunching (UIApplication app, NSDictionary options) { _session = new Session(); _session.NextScreen += (screenIndex) => { window.RootViewController = _viewControllers[screenIndex]; }; _viewControllers.Add(new Screen0(_session)); _viewControllers.Add(new Screen1(_session)); _viewControllers.Add(new Screen2(_session)); // create a new window instance based on the screen size window = new UIWindow (UIScreen.MainScreen.Bounds); // If you have defined a view, add it […]
我试图通过听筒扬声器播放audio,它工作正常。 相同的代码在以下情况下不起作用。 打开相机录制video 而不是开始录制,取消它 然后,试图通过听筒无法播放audio。 它正在通过主扬声器播放 这是我的代码,通过听筒播放audio。 -(void)initialAVaudioPlayer { if (player==nil) { NSError *error = nil; AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; [session setActive: YES error:nil]; AVAudioSessionPortDescription *routePort = session.currentRoute.outputs.firstObject; NSString *portType = routePort.portType; if ([portType isEqualToString:@"Receiver"]) { [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]; } else { [session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&error]; } NSString *path; NSError *err; NSString […]
我可能犯了一些语法错误,但我不明白为什么我的代码不工作: 在.m文件的顶部,我写道: #define kCountry "Country"; 在这种情况下,我得到了来自xCode的红色警告 – 预期] 然后在函数体中: floatCountries = 74,2; [[NSUserDefaults standardUserDefaults]setFloat:floatCountries forKey:kCountry]; float test= [[NSUserDefaults standardUserDefaults]floatForKey:kCountry]; NSLog(@"%f", test); 在那一个 – 预期的expression。 这听起来有点愚蠢,但我想简化我的代码,并使用它,请帮助我! 🙂
在我的应用程序,我开始NSURLConnection,parsingXML,从这个XML初始化数组,并显示在tableView中。 在ViewDidLoad我呼吁服务器与查询参数0,它返回给我的string,所有转换后在tableView 4行 – 标题,当我推这些标题,所有进程(连接到服务器,parsing,数组初始化)必须重复。 在didSelectedRowAtIndexPath我必须传输节ID(以便服务器给我发送正确的数据)。 我怎样才能正确地做到这一点? 我在ViewDidLoadbuild立连接,我怎么能再次调用它? 我的.m文件: #import "catalogViewController.h" #import "XMLReader.h" @interface catalogViewController () @end @implementation catalogViewController – (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { } return self; } //-=-=-=-=-=-=-=-=-=-=–=-=-=-=-=-=-=-=-=-CONNECTIONS METHOD START-=-=-=-=-=-=-=-=-=–=-=-=-=-=-=-=-=-=-=- – (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [_receivedData setLength:0]; } – (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [_receivedData appendData:data]; } – […]