Kişisel olarak ters DNS tarzı bir etki alanı kullanıyorum. Örneğin:
NSError * myInternalError = [NSError errorWithDomain:@"com.davedelong.myproject" code:42 userInfo:someUserInfo];
Alanın üçüncü kısmı ( @"myproject"
) sadece bu projedeki ( "My Project"
) hataları başka bir projedeki ( "My Other Project"
=> com.davedelong.myotherproject
) hatalardan ayırt etmek için kullanılır .
Bu, geliştiricinin kasıtlı olarak sadece benimle uğraşmaya çalışmadığı sürece (ki bunun pek olası olmadığına inanıyorum. ..).
Kod numaralandırma çakışmalarına gelince, bunun için endişelenmeyin. Kodlar bir etki alanında benzersiz olduğu sürece , iyi olmalısınız.
Çeviri hataları ise size kalmış. Ne yaparsan yap, iyi belgelediğinden emin ol. Kişisel olarak , genellikle bana geldiklerinde çerçeve tarafından üretilen hataları aktarıyorum, çünkü tüm kodları ele alacağımdan ve tüm kullanıcı bilgisini projeme daha özel bir şeye çevireceğimden asla tam olarak emin değilim. Çerçeveler değiştirebilir ve daha fazla kod ekleyebilir veya mevcut kodların anlamını değiştirebilir, vb. Ayrıca hatanın nereden geldiğini daha net bir şekilde belirlememe yardımcı olur. Örneğin, StackKit çerçevem com.stackkit
etki alanında bir hata oluşturuyorsa bunun bir çerçeve sorunu olduğunu biliyorum. Ancak, içinde bir hata oluşturuyorsa NSURLErrorDomain
, bunun özellikle URL yükleme mekanizmasından geldiğini biliyorum.
Ne olabilir yapmak çerçeve oluşturulmuş hatayı yakalamak ve alanınızı ve genel bir kod gibi bir şey sahip yeni hata nesnesinde sar olduğu kFrameworkErrorCodeUnknown
ya da bir şey ve sonra yakalanan hatayı yerleştirmek userInfo
altında NSUnderlyingErrorKey
. CoreData bu çok (eğer denerseniz, örneğin yapar save:
bir NSManagedObjectContext
ama ilişki bütünlüğü hataları var, bir tek hata geri alırsınız, ama NSUnderlyingErrorKey
özellikle ilişkiler yanlış olduğu gibi çok daha fazla bilgi, vb içerecektir).