В моем (ограниченном) опыте,
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
не уважает символы новой строки, таким образом, можно закончить с намного более коротким CGSize
, чем на самом деле требуется.
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
, действительно кажется, уважает новые строки.
кроме того, текст на самом деле не представляется наверху UITextView
. В моем коде я установил новую высоту UITextView
, чтобы быть на 24 пикселя больше, чем высота, возвращенная эти sizeOfFont
методы.
Это выглядит как:
<project>_<path_part1>_..._<path_partN>_<file>_<extension>_INCLUDED
// include/pet/project/file.hpp
#ifndef PET_PROJECT_FILE_HPP_INCLUDED
, что:
_[A-Z]
или содержать __
нет) INCLUDED
, который вы портите для боя) Я читал о GUID, но они выглядят странно.
И очевидно, что лучше, чем все компиляторы, реализуют #pragma once
(или лучше, #pragma multiple
и «один раз» будет поведением по умолчанию ...)
Как уже упоминалось ранее, очень распространенным соглашением является использование заглавной версии имени, а точка заменяется подчеркиванием: foo.h -> FOO_H
. Однако это может привести к конфликтам имен. с простыми и / или общими именами. По этой причине автоматически сгенерированный заголовок, такой как stdafx.h, в непустых проектах Visual C C ++ добавляет некоторую случайную строку, например:
#ifndef FOO_H__NsknZfLkajnTFBpHIhKS
#define FOO_H__NsknZfLkajnTFBpHIhKS
#endif
http://www.random.org/strings/ является полезным генератором случайных чисел для этого.
Кроме того, если файл является частью какого-то подмодуля или его содержимое находится в одном конкретном пространстве имен, я склонен добавить это и к охраннику:
#ifndef SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
#define SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
namespace somecomponent
{
...
}
#endif
Обычно люди делают это по имени файла, чтобы код каждого файла компилировался и добавлялся только один раз. Вы можете сделать FOO_H как хотите, но почти все, что я когда-либо кодировал или видел, использовало имя файла. Просто убедитесь, что он уникален, потому что вы не хотите, чтобы ваш FOO_H конфликтовал с чужим FOO_H.