The compiler wants us to use an NSString constant for the format string (the first argument to NSLog) because it prevents a fairly well-known exploit that could potentially violate security. So for example, you could change the code you posted as follows to keep the compiler happy:
NSLog(@"%@", [NSString stringWithFormat:@"%@", entered]);
EDIT
And of course, the above could (and should) simply be written as follows:
NSLog(@"%@", entered);
Nature of Security Exploits
Uncontrolled format string[1] is a type of software vulnerability,
  discovered around 1999, that can be used in security exploits.
  Previously thought harmless, format string exploits can be used to
  crash a program or to execute harmful code. The problem stems from the
  use of unchecked user input as the format string parameter in certain
  C functions that perform formatting, such as printf(). A malicious
  user may use the %s and %x format tokens, among others, to print data
  from the stack or possibly other locations in memory. One may also
  write arbitrary data to arbitrary locations using the %n format token,
  which commands printf() and similar functions to write the number of
  bytes formatted to an address stored on the stack. 
A typical exploit
  uses a combination of these techniques to force a program to overwrite
  the address of a library function or the return address on the stack
  with a pointer to some malicious shellcode. The padding parameters to
  format specifiers are used to control the number of bytes output and
  the %x token is used to pop bytes from the stack until the beginning
  of the format string itself is reached. The start of the format string
  is crafted to contain the address that the %n format token can then
  overwrite with the address of the malicious code to execute.
Source: Wikipedia Uncontrolled Format String
[1]: http://cwe.mitre.org/data/definitions/134.html "CWE-134: Uncontrolled Format String". Common Weakness Enumeration. MITRE.