2009-11-12 3 views
-1

Я хочу знать, как написать программу на языке Objective-C в XCode для iPhone OS, я хочу вызвать приложение (Ex: hello world) из другого приложения (его вызывающее приложение, функциональность которого - это просто позвонить привет мирового применения). как указать путь hello world в вызывающем приложении и где разместить мое приветственное приложение мира (я имею в виду, должен ли я импортировать мир hello в свой проект или просто указать его URL-адрес в моем вызывающем приложении) .. Pls дает кодировку пример???Как вызвать приложение в моем проекте XCode?

ответ

1

См: iPhone App Programming Guide

Это то, что ваша вторая заявка должна сделать, чтобы справиться с открытым звонок от первого:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    if ([[url scheme] isEqualToString:@"todolist"]) { 
     ToDoItem *item = [[ToDoItem alloc] init]; 
     NSString *taskName = [url query]; 
     if (!taskName || ![self isValidTaskString:taskName]) { // must have a task name 
      [item release]; 
      return NO; 
     } 
     taskName = [taskName stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

     item.toDoTask = taskName; 
     NSString *dateString = [url fragment]; 
     if (!dateString || [dateString isEqualToString:@"today"]) { 
      item.dateDue = [NSDate date]; 
     } else { 
      if (![self isValidDateString:dateString]) { 
       [item release]; 
       return NO; 
      } 
      // format: yyyymmddhhmm (24-hour clock) 
      NSString *curStr = [dateString substringWithRange:NSMakeRange(0, 4)]; 
      NSInteger yeardigit = [curStr integerValue]; 
      curStr = [dateString substringWithRange:NSMakeRange(4, 2)]; 
      NSInteger monthdigit = [curStr integerValue]; 
      curStr = [dateString substringWithRange:NSMakeRange(6, 2)]; 
      NSInteger daydigit = [curStr integerValue]; 
      curStr = [dateString substringWithRange:NSMakeRange(8, 2)]; 
      NSInteger hourdigit = [curStr integerValue]; 
      curStr = [dateString substringWithRange:NSMakeRange(10, 2)]; 
      NSInteger minutedigit = [curStr integerValue]; 

      NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 
      [dateComps setYear:yeardigit]; 
      [dateComps setMonth:monthdigit]; 
      [dateComps setDay:daydigit]; 
      [dateComps setHour:hourdigit]; 
      [dateComps setMinute:minutedigit]; 
      NSCalendar *calendar = [NSCalendar currentCalendar]; 
      NSDate *itemDate = [calendar dateFromComponents:dateComps]; 
      if (!itemDate) { 
       [dateComps release]; 
       [item release]; 
       return NO; 
      } 
      item.dateDue = itemDate; 
      [dateComps release]; 
     } 

     [(NSMutableArray *)self.list addObject:item]; 
     [item release]; 
     return YES; 
    } 
    return NO; 
} 

И первое приложение открывает его, как это:

NSURL *myURL = [NSURL URLWithString:@"todolist://www.acme.com?Quarterly%20Report#200806231300"]; 
[[UIApplication sharedApplication] openURL:myURL]; 
+0

Это большая часть истории. Вызываемое приложение также должно зарегистрировать протокол URL в своем info.plist (в вашем примере с «todolist»), объясненный здесь: http://www.mobileorchard.com/apple-approved-iphone-inter-process- связь/ –

+0

Спасибо много ... Эй, но todolist хранится где-то как каталог на нашем локальном диске справа ??? затем y, чтобы назвать его: //www.acme.com? Quarterly% 20Report # 200806231300 "]; например, если сохранить мое приложение-todolist в пути: // macintosh HD/Пользователи/home/todolist могу написать выше код, как NSURL URLWithString: @ "ToDoList: //: // макинтош HD/Users/дома/ToDoList"]; плз тел мне это правильный путь кал мой ToDoList приложение ?? – suse

+0

привет Mahboudz, Где я должен регистрировать URLtype ... в приложении todolist или в приложении, которое вызывает todolist? – suse