АРХИВ ПО ТЭГУ "OBJECTIVE-C"
АПРЕЛЬ 12, 2013

Hi,

Если бы я решал брать чувачка к себе в iOS dev команду или нет, то я бы спросил как минимум что-нибудь такое:

Вопросы:

  1. Какие фреймворки использовал? (после решения задания будут: cocoa touch, core foundation, core location, core data).
  2. Что такое зомби объекты?
  3. Что такое мемори лик?
  4. Расскажи про мемори менеджмент в iOS. Использовал ли ARC? Как работает ARC и чем он отличается от классического способа. Расскажи про Autorelease vs release?
  5. Какими инструментами пользуешься? (Xcode, Instruments — поисследуй, там можно находить мемлики, зомби, следить за ресурсами апы, итд).
  6. Obj-c: что такое протокол? Где используется?
  7. Obj-c: что такое категория? Где используется?
  8. Obj-c: есть ли статические методы?
  9. Obj-c: можно ли создать приватные методы в классе?
  10. Что такое mutable и immutable объекты? Покажи на примере Obj-c и ктандартного набора классов из foundation framework.
  11. Работал ли с многопоточностью в iOS? (тут почитай про NSThread, GCD, NSOperation).

Задание:

  • Шаг 1: Написать iOS апу в которой на главной странице 2 инпут филда: долгота, широта. + кнопка, когда ее нажимаешь по прога должна проверить что в инпут фильды введены правильные значение (широта, долгота), если ок то показать попап с картой на которой отмечена точка по введенным координатам с приближением 10,000 метров (диаметр видимости), когда нажимаешь кнопку сверху то позвращаешься на предыдущий экран.
  • Дополнительно шаг 2 (после того как шаг 1 сделаешь): когда ввел координаты и показал на экране — сохрани координаты в локальной базе на телефоне (SQLite), и добавь кнопку на главной странице которая будет отображать список последних 10 введенных координат.
  • Дополнительно шаг 3: когда кликаешь на элемент истории координат — открывается карта по этой координате. 

PS Хотя конечно же зависит от задач!

ДЕКАБРЬ 16, 2012

Hi,

Бытсро, проверили, где баги и как лучше сделать (особенно волнует метод value:, нужно ли там темп вар)? Есть ли в кокоа уже имплементация КАС лока? Пасибо/

interface

 

#import <Foundation/Foundation.h>
  1.  
  2. @interface CASLock : NSObject
  3. {
  4. @private
  5.     NSLock * lock;
  6.     BOOL val;
  7. }
  8.  
  9. + (CASLock *)lockWithValue:(BOOL)bval;
  10. - (id)initWithValue:(BOOL)bval;
  11.  
  12. /// Check (and set) lock value to AA:
  13. /// — if lock value is AA:      return YES and do update lock value.
  14. /// — if lock value is not AA:  return NO and do not update lock value.
  15. ///
  16. /// Example usage:
  17. /// <code>
  18. /// if (![checkAndSetLock:NO]) {
  19. /// return; // lock value is already YES
  20. /// }
  21. /// // do stuff, lock value changed to YES
  22. /// </code>
  23. - (BOOL)checkAndSetLock:(BOOL)expected;
  24. - (void)setLock:(BOOL)newval;
  25. - (BOOL)value;
  26.  
  27. @end

implementation

 

#import «CASLock.h»
  1.  
  2. @implementation CASLock
  3.  
  4. + (CASLock *)lockWithValue:(BOOL)bval
  5. {
  6.     return [[CASLock alloc] initWithValue:bval];
  7. }
  8.  
  9. - (id)initWithValue:(BOOL)bval
  10. {
  11.     self = [super init];
  12.     if (self) {
  13.         lock = [[NSLock alloc] init];
  14.         val = bval;
  15.     }
  16.     return self;
  17. }
  18.  
  19. - (void)dealloc
  20. {
  21.     [lock release];
  22.     [super dealloc];
  23. }
  24.  
  25. - (BOOL)checkAndSetLock:(BOOL)expected
  26. {
  27.     @try {
  28.         [lock lock];
  29.         if (val == expected) {
  30.             val = !expected;
  31.             return YES;
  32.         }
  33.         else {
  34.             return NO;
  35.         }
  36.     }
  37.     @finally {
  38.         [lock unlock];
  39.     }
  40. }
  41.  
  42. - (void)setLock:(BOOL)newval
  43. {
  44.     @try {
  45.         [lock lock];
  46.         val = newval;
  47.     }
  48.     @finally {
  49.         [lock unlock];
  50.     }
  51. }
  52.  
  53. - (BOOL)value
  54. {
  55.     @try {
  56.         [lock lock];
  57.         BOOL tmp = val;
  58.         return tmp;
  59.     }
  60.     @finally {
  61.         [lock unlock];
  62.     }
  63. }

 

НОЯБРЬ 25, 2011

Hey.

Just a note. For more info see TargetConditionals.h.

platform.h:

#ifndef __platform_h
  1. #define __platform_h
  2.  
  3. // Load platform specific stuff
  4. #ifdef __APPLE__
  5. # import "TargetConditionals.h"
  6. # ifdef TARGET_OS_IPHONE
  7. #  include "platform/ios/ios_specific_stuff.h"
  8. # elif TARGET_IPHONE_SIMULATOR
  9. #  include "platform/ios/ios_specific_stuff.h"
  10. # else
  11. #  assert "Only iOS platform is supported at the moment (using __APPLE__)"
  12. # endif
  13. #else
  14. #  error "Only iOS platform is supported at the moment (not __APPLE__)"
  15. #endif
  16.  
  17. #endif // __platform_h
АВГУСТ 17, 2011

work with me Работка нужна кому? Питер, мобайл дев %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Приветик дудекос.

Кто хочет поработать со мной ну и ваобще с крутанскими чувачками, пока что удаленно, а вскоре в питерском офисе?

Нужны сотоны по:

  • Java/Android
  • Obj-C/C++/iPhone
  • Java/JEE/Groovy/Grails; SQL (Oracle, MySQL)
К кому обращаться:
  • Ну если интересно пишите мне icon smile Работка нужна кому? Питер, мобайл дев %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8
  • Или сразу Саньку заливайте резюмку на godexsoft [at] gmail [dot] com.
PS Не забудьте — сегодня El Classico в час ночи по Москве! Смотреть обязатеельно! Первый матч 2-2, хотя Реал выглядил намного сильнее!
ИЮЛЬ 1, 2011

nice easy file rename in mac os x tiger leopard Nice File Rename for Mac OS X %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Дудекос.

По запросу свыше я сегодня заимплементил UI‘ную утилиту на Cocoa, которая эмулирует фукнционал ниже приведенного скприта:

#!/bin/bash
  1.  
  2. for i in *"some text"*.*
  3. do
  4.         newname=`echo $i | sed -e 's/some text/some replacement/'`;
  5.         echo "Renaming $i -&gt; $newname";
  6.         mv "$i" "$newname";
  7. done

Ну всем понятно, что это всего лишь переименование файлов в дире по нахождению в имени файла определенной фразы.

Не всех радует перспектива пользоваться консолью, а ведь она удобней! icon smile Nice File Rename for Mac OS X %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

PS Дурацкий Xcode 4 — выключили поддержку 10.5, чтоб собрать под 10.5 нужно Xcode 3 скачать, выдернуть оттуда SDK, и куда нить себе сохранить а еще лучше линку в /Developer/SDKs/ сделать.

Скачать приложение.

Скачать исходники.

ОКТЯБРЬ 7, 2010

Hi.

Решил таки изучить нормальненько так iPhone & Android development с акцентом на С++.

Нужно качественно изучить доку рекомендованную алексом по C++ (Майерс и Александреску).

Так же нужно более детально изучить/повторить Objective-C и Java.

PS Мой мега сайт icon smile iPhone and Android dev %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8 news

Страницы:12