2011-10-24 9 views
-2

を呼び出した後、私はコードの下にしようとした私は、いくつかの無関係な答えを得る:NSDictionaryの

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 


NSString * str1 = @"program"; 

NSArray * alphabets = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z",nil]; 
NSMutableDictionary * alphaToNum = [NSMutableDictionary dictionary]; 
NSMutableDictionary * numToAlpha = [NSMutableDictionary dictionary]; 

NSInteger index =0; 
int shifter = 5; 

for(NSString * character in alphabets){ 
    index++; 
    [alphaToNum setObject:[NSNumber numberWithInteger:index] forKey:character]; 
    [numToAlpha setObject:character forKey:[NSNumber numberWithInteger:index]]; 
} 

NSRange * rng = {0,0}; 
NSLog(@"-------"); 
//NSLog(@"%@" , [str1 substringWithRange:NSMakeRange(1, 1)]); 

for(int i=0;i<[str1 length];i++) 
{ 
    NSString * ss = [str1 substringWithRange:NSMakeRange(i, 1)]; 
    NSInteger i = [alphaToNum valueForKey:ss]; 

    i = (i + 5); 
      NSLog(@"%d",i); //last code 
} 

、これは私が最後のコード

2011年10月24日13のために得るものです:20:暗号08.289 [22732 :a0f】1103808

2011-10-24 13:20:08.290暗号[22732:a0f] 1101168

2011-10-24 13:20:08.290暗号[22732:a0f] 1103200

2011-10-24 13:20:08.290暗号[22732:a0f] 1103616

2011-10-24 13:20:08.291暗号[22732:a0f] 1103584

又は時には

"EXC_BAD_ACCESS"

これは完全に間違っています!

+1

ループ内でループ変数( 'i')を変更しないでください。 – jrturton

答えて

2
NSInteger i = [alphaToNum valueForKey:ss]; 

これはNSIntegerではなくNSNumberオブジェクトを返します。

次のようにその行を作成し、

NSInteger i = [[alphaToNum valueForKey:ss] integerValue]; 

、クラッシュについては、我々は唯一のクラッシュログを見た後に答えることができます。それはもっと役に立ちそうです。

+0

ありがとうが、まだ間違った答えを得る!!! –

+0

あなたは何を得ていますか、何を期待していますか?それを詳細に投稿してください。 – Ilanchezhian