I am getting the error message Incompatible integer to pointer conversion sending 'unichar' (aka 'unsigned short') to parameter of type 'NSString *' on the last line of this code.
NSMutableString *sp = [[NSMutableString alloc] initWithString:@" "];
NSArray *deals=@[@[sp, sp, sp, sp], @[sp, sp, sp, sp]];
NSString* suits = @"NESW";
[deals[0][3] replaceCharactersInRange:NSMakeRange(1, 1) withString:[suits characterAtIndex:2]];
As the error says,
characterAtIndex:returns a unichar whilereplaceCharactersInRange:withString:needs an NSString. TrysubstringWithRange:NSMakeRange(2,1)instead if you want an NSString with the character at index 2.