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.stackkitetki 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 kFrameworkErrorCodeUnknownya da bir şey ve sonra yakalanan hatayı yerleştirmek userInfoaltında NSUnderlyingErrorKey. CoreData bu çok (eğer denerseniz, örneğin yapar save:bir NSManagedObjectContextama 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).