我正在通过翻译我为Android游戏编写的一些Java代码来完成Objective-c的第一步(经过很长很长一段时间之后).似乎没有容器可以接受一个对象,而不是id先将它强制转换?还是有吗?
具体来说,这是我正在尝试使用的代码:
NSMutableArray *touchedBodies = [[NSMutableArray alloc] init];
// some additional code
if(![touchedBodies containsObject:(id)body]) {
[touchedBodies addObject:(id)body];
}
Run Code Online (Sandbox Code Playgroud)
该containsObject行传递正常,但在touchedBodies addObject:(id)b我收到"错误访问"错误.我试图添加的身体是合法的Box2D b2Body.
当我试图直接添加身体而不进行强制转换时:
[touchedBodies addObject:body];
Run Code Online (Sandbox Code Playgroud)
编译器抱怨"无法使用类型为b2Body*的左值初始化id类型的参数
我错过了什么?
我正在将我的iOS应用程序与Parse和Facebook集成.它在我的iPhone 4s上工作正常 - 运行iOS 6 - 但是当我在我的xCode 5模拟器上尝试测试帐户时它失败了.
当我用facebook按钮登录时,我会看到一个屏幕说:你已经授权Test999(我的应用程序名称.)当我打电话给这一行时,就会发生这种情况:
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error)
Run Code Online (Sandbox Code Playgroud)
我按OK.它将我发送到"您必须先登录"屏幕.我输入了我的用户名和密码,然后按下登录状态 - 我将被发送回您已经授权的Test999.我按OK - 我看到一个空白视图,左上方有一个x来关闭它.没有别的事可做,所以我推它,我被送回"你必须先登录"屏幕.
因此,无法使用模拟器登录.我试图"重置内容和设置",但它没有帮助.
关于类似问题的答案后,我尝试添加一个reconnectWithFb方法(下面),我还将我的Facebook sdk更新到版本3.9.什么都没有帮助.
这是我用facebook方法登录的:
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
if (!user) {
if (!error) {
NSLog(@"Uh oh. The user cancelled the Facebook login.");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"User cancelled facebook login" message:@"Uh oh. The user cancelled the Facebook login." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Dismiss", nil];
[alert show];
} else {
NSLog(@"welcome screen loginWithFB: Uh oh. An error occurred: %@", …Run Code Online (Sandbox Code Playgroud) 我有一个方法需要等待另一个方法来完成从数据存储区加载一些对象.所以我正在使用这样的while循环:
-(void) findAGoodCar {
[self.indicator startAnimating];
while(appDelegate.availableCars == nil || [appDelegate.availableCars count] < 1) {
sleep(0.01);
}
// do some stuff
}
Run Code Online (Sandbox Code Playgroud)
虽然这开始工作,但是为了装载汽车,其他过程已经开始了.
现在,该指标从未开始制作动画.对象的加载永远不会完成.循环永远不会结束.为什么?
编辑:这是我的loadCars方法.当应用程序启动时,它会从(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsappDelegate调用,并以异步方式向Parse.com的云进行查询:
+(void) loadCars {
PFQuery *query = [PFQuery queryWithClassName:kCarObjectKey];
[query whereKey:kActiveKey equalTo:[NSNumber numberWithInteger:kActiveNumber]];
NSSortDescriptor *sortByPrice = [[NSSortDescriptor alloc] initWithKey:kPriceKey ascending:YES];
[query orderBySortDescriptors:[NSArray arrayWithObjects:sortByPrice, nil]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if(!error) {
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
appDelegate.availableCars = objects;
} else {
NSLog(@"Error in loadCars %@", error.localizedDescription);
}
}]; …Run Code Online (Sandbox Code Playgroud) 我有saveTestObject()一个方法PHP文件,我需要从调用它HTML用jQuery.我环顾四周,但似乎没有完整的例子.我真的很感激.
这是我的PHP文件,名为SM.php:
<?php
switch($_POST["functionname"]){
case 'saveTestObject':
saveTestObject();
break;
}
function saveTestObject() {
echo "saveTestObject CALLED";
$object = ParseObject::create("TestObject");
$objectId = $object->getObjectId();
$php = $object->get("elephant");
// Set values:
$object->set("elephant", "phpserver");
//$object->set("today", new DateTime());
$object->setArray("mylist", [1, 2, 3]);
$object->setAssociativeArray(
"languageTypes", array("php" => "awesome", "ruby" => "wtf")
);
$object->save();
}
?>
Run Code Online (Sandbox Code Playgroud)
我的HTML表单smpage.html看起来像这样:
<form>
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
如何连接这两个,以便当我按下提交按钮时 …
ios ×2
objective-c ×2
facebook ×1
html ×1
ios7 ×1
javascript ×1
jquery ×1
php ×1
while-loop ×1