Проблема при преобразовании старого целевого кода C в ARC (автоматический подсчет ссылок) - PullRequest
4 голосов
/ 22 февраля 2012

Я пытаюсь преобразовать ранее объективный код C без ARC в ARC.Я выполняю процедуру, как в Xcode: File> Edit> Refactor> Convert to ARC.

Но я не могу преобразовать ее, потому что она генерирует много ошибок.Я искал об этом;Я пытаюсь изменить настройки сборки в Xcode Target.

1 Ответ

6 голосов
/ 22 февраля 2012

Инструмент Convert to ARC - это не волшебная пуля, которая делает ваш проект внезапно готовым к ARC.Этот инструмент удаляет все ваши звонки на такие вещи, как release & retain, он также может позаботиться о переключении некоторых пулов autorelease на новый стиль @auto release {}.Прежде чем сделать что-либо из этого, он запускает предполетный сценарий для поиска вещей, которые слишком сложны для того, чтобы его можно было выяснить, и помечают их как ошибки, чтобы вы могли просмотреть каждую из них и исправить ее.

Вам нужно пройтись по каждой из этих 84 проблем и найти решение каждой из них.Скорее всего, существует полдюжины или около того видов ошибок, которые находятся в разных местах, но каждое вхождение может иметь немного другое решениеXCode может предложить несколько возможных исправлений для некоторых ошибок (любая из ошибок, которые показывают знак остановки с белым квадратом в нем, имеет возможные исправления, XCode просто не знает, какой из них использовать, поэтому вам нужно выбрать).Некоторые из проблем будут легко решены с небольшой помощью от Google.Вероятно, будет больше ошибок, чем в конце (каждый раз я конвертировал один проект, каждый раз исправляя ошибки и пытаясь преобразовать их, сообщая больше).

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

...