Змінюй хід війни! Допомагай ЗСУ!

iPhone development

🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 14.10.2008
Повідом.: 1812
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
На этом форум мало маководов. Но чтобы както оживить раздел задам ряд вопросов. Пошел я в одну фирму самообучаться программить под айфон. Фирма сразу купила мак мини на платфоме PowerPC. Те кто пытались поставить на него сдк думаю наступили на множество граблей, а я еще первый раз в этой операцинки. В общем два дня танцев с бубном и я поставил сдк 2.2.1. Некоторые люди говорят, что могут возникнуть проблемы из-за этой платформы. Но конкретно какие никто не говорит. Если ктото сталкивался с такими проблемами то ответьте.
На чем лучше программить на мак мини с поверпс или на обычном компе на базе интела? Понятное дело что лучше всего мак на интеле, но его не рассматриваем. Какое железо лучше взять для компа, чтобы можно было на него поставить мак ос и сдк? И без больших проблем программить.
Спрашиваю потомучто через пару месяцев думаю апгрейдить комп, а платформа сейчас у меня амд.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #2
ну для начала, тебе надо уже ориентироваться на сдк 3.0 так как 2.2.1 уже морально устарело. т.е. это ведет к тому что и Ось должна быть 10.5.7
геммора будет много с хакинтошем, так как если начнешь нормально колбасить, возьмешь большой проэкт, и тут обновится ось и не дай бог сдк с чем-то критичным, тебе надо будет ставить, а не сможешь, прийдется сносить все и искать ideneb или iAtkos или еще что-то более новое... а заказчики долго не ждут, рынок динамичный и большой, выбор есть всегда... так что по хорошему, с ибэя притарабань для начала что-нить не оч наваленное и педаль, если ты решил этим заниматься, а там за заказик-два отобьешь все... а если все-таки хочешь завязаться с хакинтошами... стукни Korich'y он на этом собаку съел :)
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #3
Никто случайно не сталкивался со следующей проблемой? После установки SDK через какое то время: 3-5 дней, девайс перестает видится компом, причем в System Profiler он есть, но ни одно приложение его не видит, включая X Code Organiser. Помогает только переустановка SDK. Может есть какое то решение проблемы более простое, а то я заколебался SDK переустанавливать.
PS. Mac - 10.5.7
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #4
такое бывает если iPhone взломан или стоит не поддерживаемая версия iPhone configuration utility
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #5
А что значит неподдерживаемая версия iPhone configuration utility? У меня такая прога стоит, но она работает - пока не перестает видится девайс. А насчет неофф. девайсов, когда их видеть перестает, то уже все равно - оффициальный или нет, не видится ничто.
Что интересно у меня такого не было в 10.5.6 с SDK 3.0 beta
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #6
работал ли кто с NSXMLParser?
если да, то не замечали ли вы, что при обработке xml он освобождает не всю занятую ранее память. Остается много его промежуточных данных (вероятно авторелизных) в GeneralBlock-1024, GeneralBlock-512. В результате при обработке большого количества xml (особенно большого размера) приложение крешиться с сообщением Low-memory.((

PS. это именно выделенная им память - не лики, ликов нет.Парсер пересоздается перед конвертированием каждого нового файла, но после него остается остаток.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #7
может это?

Посилання видалено

решение с

[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];

не помогает?
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #8
попробовал, к сожалению не помогло, память все равно выделяется при выполнении метода parse, а потом не освобождается. Leak tool эту память ликом не считает. Пытался до и после поставить autoreleasePool, но и это не спасло. Такое чувство, что это память занята просто какими - то байтами или intами.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #9
Ряд вопросов

Доброго времени суток,
есть ряд вопросов:
1. Не получается установить title из Interface builder, только вручную:
- (initWithNibName:....) {
if (self = [super initWithNibName:....]) {
self.title = @"Welcome";
}
}
Если кто-то знает, помогите пожалуйста.

2. Есть TabBarController, который связан с TabBarView.xib. Сам TabBarController вызывается из SomeNavigationController. Проблема в том, что когда прописываю все руками, т.е. создаю отдельные табы, затем бросаю все в массив и потом помещаю во viewControllers, то все работает, однако, когда рисую все тоже самое в Interface Builder, то просто при запуске показывает пустую вьюху.

3. Может кто сможет дать ссылку каким образом можно послать post запрос и принять ответ.

Зараннее спасибо.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #10
Нужен пример play list view

Встречался кто-либо с реализацией view, подобной play list iPod приложения.
Пример: img10.imageshack.us/img10/6954/playlistb.jpg

Кстати, могу предложить примеры взамен :).
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #11
на первый взгляд вроде ничего сложного, нарисовать картинки и правильно их наложить, с прозразностями поиграться. На крайняк touches перенаправить.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #12
Вроде бы все просто, но проблема на лицо, у меня реализовано следующее:
1. nigation view
2. tab view, в котором 4 таба, добавленые через TabController viewControllers:NSArray...

проблема в том что я не могу в внутри конкретного таба достучаться до navigation view чтобы убрать back button или же изменить title :-(.

Именно поэтому и спросил может у кого есть пример, так бы хоть посмотрел что я не так связал.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #13
проблема в том что я не могу в внутри конкретного таба достучаться до navigation view чтобы убрать back button или же изменить title .

предполагаю, что под Navigation view подразумевается NavigationController, в этом случае BackButton и Title не являются свойствами navigation controllera, а свойствами View-контроллеров, которые находятся в NavigationController.viewControllers. У них есть свойство navigationItem, в котором все это задается. Выложи код, тогда можно будет что то определеннее сказать.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #14
Реализация

Попробую описать всю цепочку (основные строки):

1. AppDelegate:
Код:
- (void)applicationDidFinishLaunching:(UIApplication *)application {    

	navigationController = [[UINavigationController alloc] init];
	
	WelcomeViewController *viewController = [[WelcomeViewController alloc] initWithNibName:@"WelcomeView"	bundle:nil];
	[navigationController pushViewController:viewController animated:NO];
	[viewController release];
	
	[window addSubview:navigationController.view];
	
    // Override point for customization after application launch
    [window makeKeyAndVisible];
}

2. WelcomeViewController:
Код:
- (IBAction)signIn:(id)sender
{
	LogInController *viewController = [[LogInController alloc] initWithNibName:@"LogInView" bundle:nil];
	[self.navigationController pushViewController:viewController animated:YES];
	[viewController release];
}

3. LogInController:
Код:
- (IBAction)doLogIn {
	TabBarController *viewController = [[TabBarController alloc] init];
	[self.navigationController pushViewController:viewController animated:YES];
	[viewController release];
}

4. TabBarController:
Код:
- (void)viewDidLoad {
	TabBarOneController *placeholder1 = [[[TabBarOneController alloc] initWithTitle:@"One"] autorelease];
	TabBarTwoController *placeholder2 = [[[TabBarTwoController alloc] initWithTitle:@"Two"] autorelease];
	TabBarThreeController *placeholder3 = [[[TabBarThreeController alloc] initWithTitle:@"Three"] autorelease];
	TabBarFourController *placeholder4 = [[[TabBarFourController alloc] initWithTitle:@"Four"] autorelease];

tabBarController = [[UITabBarController alloc] init]; 
	tabBarController.viewControllers = [NSArray arrayWithObjects:placeholder1, placeholder2, placeholder3, placeholder4, nil]; 
	
	[placeholder1 release];
	[placeholder2 release];
	[placeholder3 release];
	[placeholder4 release];
	
	[self.view addSubview:tabBarController.view];
    [super viewDidLoad];
}

5. TabBarOneController:
Код:
- (id)initWithTitle:(NSString*)theTitle {
	if (self = [super init]) {
		self.tabBarItem.image = [UIImage imageNamed:@"table.png"];
		self.title = theTitle;
	}
	return self;
}

- (IBAction)getFromCameraRoll:(id)sender
{
	[self presentModalViewController:[[ImagePickerController alloc] init] animated:YES];
}

В *5* вызывается стандартная реализация ImagePickerController.

Так вот проблема: при вызове оного вверху (navigationBar) должна появляться кнопка "Cancel", но она получается закрыта navigationBar.
Как мне его убрать пока не дошел до этого.

Кроме того до вызова ImagePicker-a в navigationBar должна показываться title, без ссылки назад на LogInView.

Большое спасибо за помощь, при возможности в долгу не останусь ;)

Есть вариант в 3 (LogInController) вместо
Код:
[self.navigationController pushViewController:viewController animated:YES];
использовать
Код:
[self presentModalViewController:viewController animated:YES];
тогда при переходе исчезнет navigationBar в TabBarOneController, да и в других тоже, но как в таком случае быть, если на некоторых табах должен быть как минимум title.
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #15
1. Я не увидел описания кнопки Cancel. Если вы располагаете ее прямо на view - то это неверно. Ее можно определить
a) в свойстве (UIViewController *) viewController.navigationItem.rightBarButtonItem. Тогда она будет на navigationBar справа
б) программно определить titleView вьюконтроллера и навешать на него хоть двадцать разных кнопок. Можно TitleView сделать тулбаром и обвешать его иконками
Все это определятся в свойствах ImagePickerController

2)Кнопку back можно спрятать вызвав viewController.navigationItem.hidesBackButton
3)Title определяется тоже в navigationItem - navigationItem.Title
4)NavigationBar можно также спрятать [controller.navigationController setNavigationBarHidden: YES Animated: YES(NO)]

В общем то все настройки navigationBar для конкретного контроллера определяются в его navigationItem, этот итем потом navigationController сам "накладывает" на navigationBar.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #16
Спасибо большое за подробный ответ, сегодня все попробую !

Все равно не работает, не скрывает back button и все остальное, это я не к тому что вверху что-то неправильно написано, а к тому что я завтыкал где-то, и не правильно возможно указал делегаты и иже с ним :(

+ вопрос, у меня из soap запроса получается ответ с параметрами.
Запрос вызывается при "-(void)viewDidLoad" и отправляется в отдельный поток:
Код:
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
	if( theConnection ) {
		webData = [[NSMutableData data] retain];
	}
	else {
		NSLog(@"theConnection is NULL");
	}
В этом контроллере есть tableView, который должен заполняться из данных, полученных с soap, так вот проблема: дело в том что заполнение таблицы вызывается раньше, чем данные были получены от soap запроса.
Код:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [data count];
}
где data - данные с soap.

Подскажите пожалуйста как можно запустить это чтобы сначала приходили данные, а потом их можно было отправлять в tableView ?
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #17
Подскажите пожалуйста как можно запустить это чтобы сначала приходили данные, а потом их можно было отправлять в tableView ?
В методах делегата NSURLConnection есть метод, который вызывается в конце загрузки страницы. Определи этот метод и напиши в нем [self.tableView reloadData];.
Больше вариантов не вижу. Загрузка идет в отдельном потоке и ты по определению не угадаешь, что и когда раньше произойдет.
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #18
Возможно синхронизация потоков поможет, но я пока в этом слаб.

Вы наверняка знаете ответ на вопрос:
...
1. Есть TabBarController добавленый через в IB.
2. Есть 3 таба, в каждом из которых в свойствах выбраны NIB Name (и отмечена галочка resize view from nib).
3. В TabBarViewController (mine) добавлено поле
Код:
@interface TabBarViewController : UIViewController {
	UITabBarController *tabBarController;
}
@property(nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end

@implementation TabBarViewController

@synthesize tabBarController;
- (void)dealloc {
	[tabBarController release];
	[super dealloc];
}
@end
4. Это поле tabBarController залинковано с IB.
5. При компиляции все ок.
6. При запуске говорит:
2009-09-28 19:22:38.913 CZ[6035:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "TabBarViewController" nib but the view outlet was not set.'

Хотя в Files Owner (=TabBarController) нет поля, с которым бы я слинковал view.
Когда линкую в IB view
Files Owner
First Responder
Tab Bar Controller
--Tab Bar
--New Tab Bar View Controller
----Tab Bar Item (New)
--.....
---.....
то нижние табы растягиваются на весь экран вертикально.

Что делать ?
 
Останнє редагування:
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #19
тут ничем не могу помочь, т.к. interface builderом пользоваться не приходилось
 
  • 🔴 21:27 Повітряна тривога в м. Харків та Харківська територіальна громадаСлідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #20
Да я и сам начал в IB только потому что было интересно переписать, то что есть.
Кстати, спасибо за [self.tableView reloadData]; его и пользую пока.

Может подскажешь как сделать ссылку из вью, который делает pushViewController во вью которое он пушает ?

Дело в том что в TabBarController (4-й пункт раннее):
Код:
[self.view addSubview:tabBarController.view];
а в самом табе у меня не получается убрать или поменять title, его можно только поменять в TabBarController как
Код:
self.navigationItem.title = @"Some Title";
так вот я и думаю чтобы получить ссылку на navigationController, чтобы из разных табов можно было менять содержимое и делать pushViewController. Сейчас когда я пытаюсь делать pushViewController внутри конкретного таб контроллера, то просто ничего не происходит:
Код:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
	DetalCardViewController *detailController = [[DetalCardViewController alloc] initWithNibName:@"DetalCardView" bundle:nil];
    [self.navigationController pushViewController:detailController animated:YES];
}
Хотя в дебаге от выполняет эти строчки.
Вроде делаю все как по мануалу, а оказывается нет, что не так ?

Рисунок как выглядит - img268.imageshack.us/img268/1714/screensnapz004.png
 
Назад
Зверху Знизу