MD5 работал для меня, меняя мою базу данных вручную. См. Сброс пароля
Как и многие другие, я только начал смотреть на Obj-C из-за iPhone. Я сделал много C ++ и C #, и из того, что я вижу, Obj-C имеет принципиально другой подход к OO в том, что он добавляет Smalltalk-подобный обмен сообщениями к C. Как и C ++, он в основном все еще C-совместим, но расширения OO позволяют Вы отправляете любое сообщение любому объекту. В этом смысле он не типизирован статически, как C ++ и C #, где вещи, которые может делать объект, привязаны к классу, которым он является. В Obj-C вы можете отправить сообщение объекту, даже если он его не поддерживает. Затем объект может переслать его, если он не знает, что с ним делать.
Действительно круто то, что вы можете добавлять интерфейсы (протоколы) во время выполнения и добавлять свои собственные обработчики, которые перехватывают и скрывают обработчики сообщений для существующих классов.
В целом, в обработке сообщений гораздо больше гибкости, чем в Ruby или Smalltalk. Является ли хорошей идеей привить этот тип ОО на C или нет, я пока не могу сказать, в некотором смысле подход C ++ лучше согласуется с первоначальной идеей C, но с другой стороны, подход Obj-C OO более что любят пуристы ОО.
От "Некоторые хорошие функции языка Objective C" :
Я считаю, что синтаксис target-c немного чище, чем в c ++, хотя я знаю, что я в меньшинстве
Мое мнение таково, что синтаксис Objective-C поначалу немного «странный», особенно если вы пришли из C / C ++ фона (как я и сделал). Если вы планируете писать приложения для Mac или iPhone, разработка Cocoa - это то, что вам нужно . Этой весной у меня была возможность заняться разработкой для Mac около месяца, и я решил написать ее на C ++ с использованием библиотек Qt, так как я был достаточно знаком с ними, и время имело существенное значение.
Если у вас есть Mac, попробуйте! Существует много информации об этом, и есть несколько хороших инструментов для развития.
Часть того, что делает Objective C настолько большим, не является языком (хотя это большое часть ot это), это - Какао (или CocoaTouch) платформа, которая соглашается с ним (по крайней мере, для 99% objc пользователей;-)
На практике, я раньше был программистом на C++ назад в старые "классические" дни Mac. Переключаясь на Objective C, Какао и Mac OS X, я нашел, что стал намного более продуктивным. Трудно для высказывания точно, сколько еще продуктивный, но 50% к 100% чувствует себя хорошо.
При выполнении Linux, можно установить GNUStep, который предоставляет довольно хорошей совместимости с Какао. Это могло запустить Вас на разработке Objective-C/Cocoa, не владея Mac. Лучшие ресурсы для изучения Objective C [по-моему], с Apple.
http://developer.apple.com/referencelibrary/Cocoa/index.html
WebKit изначально был проектом C ++ (khtml от KDE), который позже был адаптирован Apple для большей совместимости с Cocoa-средой и, таким образом, получил слой Objective-C.
Это более динамично, чем C++ и в большой степени влиявшее от Smalltalk. Я не нахожу его "лучше", чем C++ - наоборот, но некоторые люди делает.
Для разработки на Mac и iPhone это определенно лучше. В последней версии есть GC, поэтому, если вам это нравится, вам, вероятно, понравится больше, чем C ++.
Что ж, если вы пишете код для некоторых платформ, таких как IPhone, Objective-C необходим. Objective-C также использует динамическую типизацию (во время выполнения), которую многие люди предпочитают статической (во время компиляции).
Объектно-ориентированные функции Objective C используют динамическую типизацию вместо статической (во время компиляции) типизации. В этом основное различие в подходах двух языков - преимущество это или нет, зависит от вашего мнения о статической и динамической типизации.