-1

NSArray と NSMutableDictionary で発生し続けるこのエラーを整理しようとしています。それは私にこのエラーを与え続けます:

エラー:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex(inlove): index 1 beyond bounds [0 .. 0]'

誰かが私を助けて、このエラーが発生する理由を教えてください。

コード:

NSMutableDictionary *LicenceDictionary = [NSMutableDictionary dictionary];
NSArray *LicenceValuesArray = [[NSArray alloc] initWithArray:[fileContent componentsSeparatedByString:@"\n"]];

for (NSString *Arrayobject in LicenceValuesArray) {
   if (strlen([Arrayobject UTF8String]) > 3) {
      NSArray *tempArray = [Arrayobject componentsSeparatedByString(angry)" = "];
      [LicenceDictionary setObject:tempArray[1] forKey:tempArray[0]];
   }
}

ファイルの内容:

CFBundleVersion = 1.100
PortalURL = value
SpineURL = value
Authactivate = value
Authvalidate = value
Authlogout = value
RoleSelection = value
RoleSelectionURL = value
CertificateIssuer = value
SpineSessionPersistance = 0
CardRemovalPersistance = 0
LockScreenAppInactive = 0
PinchZoom = 0
LoggingSupport = 0
LogoutTimer = 90
ScreenLockTimer = 60
ScreenBlankTimer = 30
ProductName = MIA
LoggingLevel = ERROR_LOG
LoggingNumber = 0
LoggingDuration = 1
UpdateType = SILENT
InjectJavaScript = 0
JavaScriptToExecute = value
CustomerLicensed = value
ExpiryMinute = 0
ExpiryHour = 0
ExpiryDay = 31
ExpiryMonth = 10
ExpiryYear = 2014
ReadOnly = 0
Audit = 1
RemoteLogURL = value
SkipCard = 0
Signature = e8ZLMxVouwGs1CSosug3NQGmq9b7TAlraPXDFQocJpw9XNmVcquFme+p5GYVUUZ7waz/33PRX1uV7ECT6z8IK/dcqie4QcVVrC1RO7OSZx71K4QGBtRSaskA2qjSqoMkVGiqDdGwyAmFP66Y8LPW49Lrh7h3tIHwNvdMovajo40=
4

1 に答える 1

2

期待する条件が実際に真であることを確認するために、ガード コードを追加する必要があります。次のようになりたいという理由だけで、何かが真実であると仮定することはできません。

NSArray *tempArray = [Arrayobject componentsSeparatedByString:@" = "];
if ([tempArray count] == 2) {
    [LicenceDictionary setObject:tempArray[1] forKey:tempArray[0]];
}

また、これ:

if (strlen([Arrayobject UTF8String]) > 3) {

次のようにする必要があります。

if ([Arrayobject length] > 3) {

この:

NSArray *LicenceValuesArray = [[NSArray alloc] initWithArray:[fileContent  componentsSeparatedByString:@"\n"]];

次のようにする必要があります。

NSArray *LicenceValuesArray = [fileContent componentsSeparatedByString:@"\n"];
于 2014-10-23T14:31:56.517 に答える