Что лучший способ к информации об отладке журнала в приложении для iPhone?

Если вы знаете, что нужно обновить до начала, вы можете сделать что-то вроде этого:

scala> case class Person(name: String, age: Int, eyeColour: String)
defined class Person

scala> val p1 = Person("Bill", 24, "blue")
p1: Person = Person(Bill,24,blue)

scala> val p2 = p1.copy(name = "Ben", eyeColour = "brown")
p2: Person = Person(Ben,24,brown)

Если вы хотите сделать его более общим, возможно, что-то подобное будет работать (setField взят из Ответ Дункана МакГрегора в связанном посте и помещен в скрытый класс):

implicit class Modify[T](i: T) {
  def modify(m: Map[String, Any]): T = {
    for ((name, value) <- m) setField(name, value)
    i
  }

  def setField(fieldName: String, fieldValue: Any) = {
    i.getClass.getDeclaredFields.find(_.getName == fieldName) match {
      case Some(field) =>
        field.setAccessible(true)
        field.set(i, fieldValue)
      case None =>
        throw new IllegalArgumentException(s"No field named $fieldName")
    }
  }
}

case class Person(name: String, age: Int, eyeColour: String)

val p1 = Person("Bill", 24, "blue")

val p2 = p1.copy().modify(Map("name" -> "Ben", "eyeColour" -> "brown"))
// p2: Person = Person(Ben,24,brown)

p1
// res0: Person = Person(Bill,24,blue)

12
задан nevster 10 December 2008 в 13:39
поделиться

4 ответа

Objective C (более корректный, действительно) метод

NSLog(@"message");

Но стандарт C метод будет работать также

printf("message");
10
ответ дан 2 December 2019 в 05:42
поделиться

У меня нет достаточной 'репутации' для добавления прямого комментария для регистрации, но: не забывайте переходить к XCode-> Предпочтения-> Отладка-> На Запуске: Выберите Show Console и Debugger

Можно, конечно, выбрать просто Консоль или что бы то ни было, но Вы, вероятно, захотите Отладчик к. Для использования этого просто нажмите слева от строки, в которой Вы хотите повредиться. Можно также переключиться от, 'Активируются' для 'Деактивирования' так Вас, если Вы знаете, что существует набор точек останова, которые Вы не должны поражать в начале Вашего приложения, устанавливает отладку на Deactive (в окне отладки) и затем перед ударом элемента UI в приложении, которое Вы хотите отладить, переключить ту же самую кнопку для Активации так точки останова становятся активными. Иначе Вы могли, конечно, просто нажать Continue, пока Вы не добрались до своего раздела.

Кроме того, на NSLog, если Вы начинаете накапливать набор операторов журнала, и необходимо 'найти' один, в частности, он помогает сделать: NSLog ("\n\n\nMy statement\n\n\n); который даст набор разрывов строки. Кроме того, для непосвященного:

NSLog(@"My int: %d my BOOL: %d", myInt, myBOOL);
NSLog(@"My object of any NSObject: %@", anObjectOfAnyKind);
NSLog(@"My float: %f",myFloat);

Надежда все это полезно и жаль, если я вышел, дорожка с отладкой укусила ;)

12
ответ дан 2 December 2019 в 05:42
поделиться

Используйте NSLog ("Сообщение журнала");

3
ответ дан 2 December 2019 в 05:42
поделиться

Если у вас есть приложение, которое дает сбой, вы можете запросить у пользователей журнал сбоев. Журнал сбоев содержит информацию о том, что приложение делало во время сбоя, и трассировку стека.

Файлы журналов приложений iPhone также хранятся на компьютере пользователей и копируются каждый раз, когда они синхронизируют свой iPhone. (Обратите внимание, что DEVICE_NAME будет тем же именем, что и ваш iPhone в iTunes, и каждый файл журнала будет начинаться с имени приложения.)

Mac OS X: / Library / Logs / CrashReporter / MobileDevice //

Windows XP: C: \ Documents and Settings \ Application Data \ Apple computer \ Logs \ CrashReporter \

Windows Vista: C: \ Users \ AppData \ Roaming \ Apple computer \ Logs \ CrashReporter \ MobileDevice \

2
ответ дан 2 December 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: