Программирование на Objective-C для вызова приложения из других приложений - PullRequest
0 голосов
/ 13 ноября 2009

Мне нужно разработать приложение, которое должно вызывать другое приложение, которое находится на локальном хосте. Я уже опубликовал тот же вопрос в стеке потока, и я получил ответ и реализовал его в соответствии с ним. Но я не получил выходной сигнал в симуляторе iPhone. Укажите в кодировке, в чем заключается ошибка, так что она появляется при отладке как

Blockquote

Ошибка отладчика: не удалось запустить симулированное приложение: iPhone Simulator не удалось установить приложение.

#import "ModuleManagerAppDelegate.h"   
@implementation ModuleManagerAppDelegate 
@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
 NSURL *myURL = [NSURL URLWithString:@"backgroundcolor:backgroundcolor"];
 [[UIApplication sharedApplication] openURL:myURL]; 
 [window makeKeyAndVisible];  
 [myURL release];
}
- (void)dealloc
{    
 [window release];
    [super dealloc];
}

@end

Это вызывающее приложение, и я вызываю BackgroundColor как вызываемое приложение. Я также зарегистрировал BackgroundColor в info.plist. Это мой info.plist

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
     <key>CFBundleDevelopmentRegion</key>
     <string>English</string>
     <key>CFBundleDisplayName</key>
     <string>${PRODUCT_NAME}</string>
     <key>CFBundleIconFile</key>
     <string></string>
     <key>CFBundleIdentifier</key>
     <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
     <key>CFBundleInfoDictionaryVersion</key>
     <string>6.0</string>
     <key>CFBundleName</key>
     <string>${PRODUCT_NAME}</string>
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleSignature</key>
     <string>????</string>
     <key>CFBundleVersion</key>
     <string>1.0</string>
     <key>LSRequiresIPhoneOS</key>
     <true/>
     <key>NSMainNibFile</key>
     <string>MainWindow</string>
     <key>CFBundleURLTypes</key>
     <array>
      <dict>
       <key>CFBundleURLName</key>
       <string>com.xxx.backgroundcolor.xcodeproj</string>
       <key>CFBundleURLSchemes</key>
       <array>
        <string>backgroundcolor.xcodeproj</string>
       </array>
      </dict>
     </array>
    </dict>
    </plist>

Это мое вызываемое приложение (BackgroundColor.m)

#import "BackgroundColorAppDelegate.h"

@implementation BackgroundColorAppDelegate

@synthesize window;
@synthesize Orange,Green,Yellow,Blue,Red;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];

}
-(BOOL)application:(UIApplication *) application handleOpenURL:(NSURL *)url
{
if([[url scheme] isEqualToString:@"backgroundcolor"])
 {
-(IBAction)doOrange
{
 window.backgroundColor=[UIColor orangeColor];
}
-(IBAction)doBlue
{
 window.backgroundColor=[UIColor blueColor];
}
-(IBAction)doGreen
{
 window.backgroundColor=[UIColor greenColor];
}
-(IBAction)doRed
{
 window.backgroundColor=[UIColor redColor];
}
-(IBAction)doYellow
{
 window.backgroundColor=[UIColor yellowColor];
}

}

- (void)dealloc {
    [window release];
    [super dealloc];
}


@end

Ответы [ 2 ]

1 голос
/ 19 ноября 2009

Что-то не так с кодом вашего приложения BackgroundColor. Вы обернули ряд реализаций метода (-doOrange, -doBlue и т. Д.) В реализацию другого метода (-application: handleOpenURL :). Компилятор должен сообщать вам об этом. Вам необходимо переместить эти реализации методов из этого другого метода и использовать оператор switch для вызова методов. Прямо сейчас этот код бессмыслен.

0 голосов
/ 17 ноября 2009

Первое, что нужно попробовать, это избавиться от сути вашей схемы URL. Используйте backgroundcolor вместо backgroundcolor.xcodeproj.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...